본문 바로가기

분류 전체보기

(9)
CNN(Convolutional Neural Networks) 개요 : Feature Map - Zero Padding - Pooling - Fully Connected Layer 개념 CNN은 MLP의 한 범주로 볼 수 있으며, 일반적으로 시각적 개체(이미지, 비디오, 3D 개체 등) 또는 2D 텐서에 활용 됩니다. CNN은 특징추출을 거쳐 분류를 하는 프로세스를 거치게 되는데, 특징 추출 영역은 Filter를 사용하여 공유 파라미터 수를 최소화하면서 이미지의 특징을 찾는 Convolution Layer와 특징을 강화하고 모으는 Pooling 레이어로 구성되어 있습니다. 이후 분류기를 통해 Classification을 수행하게 됩니다. 각 단계별로 살펴보면 다음과 같은 순서로 진행을 하게 되는데요. 1. Feature Map 생성 우선 Input Image를 Convolution 하여 Feature Map을 생성합니다. 이때 Kenel이라고 부르는 필터를 거치면서 이미지의 특징을 추출..
[파이썬] python sorting (bubble, selection, insertion, shell, qucik sort) Sorting은 요소들을 일정한 기준을 가지고 순서를 만들어 배치를 하는 과정을 이야기 합니다. 예를 들면, 단어 목록을 알파벳순으로 또는 길이별로 정렬할 수 있습니다. 도시 목록은 인구, 지역 또는 우편 번호별로 정렬할 수 있습니다. sorting과 관련된 많은 알고리즘들이 존재하는데, sorting을 하는 것은 computer science 에서 중요한 연구 영역임을 방증하기도 하죠. 많은 수의 항목을 정렬하기 위해서는 상당한 양의 컴퓨팅 리소스가 필요하게 되는데, 검색과 마찬가지로 정렬 알고리즘의 효율성은 처리하려는 항목의 수와 밀접한 관계를 가지고, 데이터의 양에 따라 어떠한 sorting 알고리즘을 적용하냐에 따라 효율성이 달라지기도 합니다. The Bubble Sort bubble sort는 ..
[파이썬] 논리 게이트 구현하기 (AND, OR, NAND, NOR, XOR, XNOR Logicgate in Python) 파이썬을 통해서 논리게이트를 구현하는 방법을 살펴보도록 하겠습니다. 해당 포스팅은 퍼셉트론을 구현하기 위한 것이 아닌, 단순 논리회로를 구성하는 방법에 대한 코드입니다. 논리게이트에 대한 이해가 있으시다면, 코드 구현은 크게 어렵지 않으니, 아래 코드를 참고하시면 되겠습니다. 1. AND Gate def AND (a, b): if a == 1 and b == 1: return True else: return False # main function if __name__=='__main__': print(AND(0,0)) print(AND(1,0)) print(AND(0,1)) print(AND(1,1)) 2. OR Gate def OR(a, b): if a == 1: return True elif b ==..
[파이썬] Python 튜플(tuple)과 리스트(List) 의 차이 파이썬에서 배열을 다룰 때 아마 가장 먼저 배운는 것이 튜플과 리스트 일텐데요. 작성구문부터 살펴보면, 튜플은 ( ) 을 이용하고, 리스트는 [ ] 을 이용하여 작성을 하게 됩니다. 튜플과 리스트의 차이 [공통점] 1. 컨터이너형 변수 - 리스트와 트플은 모두 데이터를 담을 수 있다. 2. 인덱스 활용 가능 3. 리스트와 튜플은 iterable(반복가능한) 개체 - 반복이 가능하기 때문에, for 문 등에 활용할 수 있다. [차이점] 1. 리스트는 가변이 가능하지만, 튜플은 변경이 불가하다 - list = mutable (가변) / tupel = immutable(불변) 2. 가변, 불변 특성으로 인해 딕셔너리의 key 값으로 쓸수 있냐 없냐 차이 - 딕셔너리의 키값은 불변한 값만 불러올 수 있기 때문에..
경사하강법 Batch/Stochastic/Mini-Batch Gradient Descent (BGD, SGD,MBGD) 경사하강법은 가중치를 업데이트 하면서 예측값과 실제값간의 차이를 줄여주기 위한 방법입니다. 앞선 포스팅에서 Adaline에 대해서 설명했는데, Adaline에서 손실함수를 사용하여 최적의 가중치를 찾게 되는데요. 손실함수 MSE 는 2차함수로 표현이 되고, MSE를 최소가 되는 지점을 찾기 위해 미분값을 이용해 값을 찾게 됩니다. 미분값을 이용한다는 것은 결국 기울기를 이용한다는 것이고, 기울기가 0이 되는 지점, 즉 Gradient 값이 0이 되는 지점을 찾는 것이 경사하강법의 기본개념이라고 할 수 있습니다. 최초의 가중치는 보통 랜덤한 값으로 설정을 하는데, 초기 가중치 값이 어디냐에 따라서 최소값까지 가는데 더 빠른 경로가 될 수도 있습니다. 그리고 최초 가중치에서 이동을 하는 폭도 중요한 파라메터..
인공신경망 초기 모델, ADALINE(아달라인) 이해, 손실함수(Loss Function) MSE (Mean Squared Error) 신경세포의 초기 모델로 불리는 아달라인 ADALINE 은 스탠포드 대학의 버나드 위드로 Bernard Widrow 와그의 제자 테드 호프 Ted Hoff 가1960년에 개발한 모델입니다. ADALINE은 Adaptive Linear Neuron의 줄임말로 최적의 리니어 뉴런을 찾는것이라고 이해하면 될 것 같습니다. 퍼셉트론 모델의 경우에는 순입력 함수의 리턴값을 임계값을 기준으로 1과 -1로 분류를 합니다. Error라고 표현된 부분이 실제값과 예측값이 차이가 되고 이를 통해 w(가중치)를 업데이트 하게 됩니다. Adaline은 순입력함수의 리턴값과 실제 결과값(Error)의 오차가 최소화 되도록 가중치를 조정하게 됩니다. 이때 Gradient 방식을 사용해서 가중치를 업데이트 하게 됩니다. Percpt..
딥러닝 Neural Network AND 함수, XOR 문제 해결 방법 딥러닝의 기초 개념에서 거론되는 것 중 하나가 바로 XOR 문제인데요. AND, OR 등은 Single Linear Separable 특성을 지니지만, XOR 문제에서는 조금 까다로워지기 시작합니다. 먼저 AND 함수를 가지고 살펴보면 다음과 같습니다. [AND 함수 분류] 먼저 하나의 퍼셉트론을 가지고 분류를 하게되면, 출력 S(y) = W1*X1 + W2*X2 + W0 활성화 함수의 Decision Boundary가 0을 경계로 변경되기 때문에, y=0으로 설정하게 되면 위와 같이 수식을 정리할 수 있습니다. 이걸 X1, X2 평면에 표시하게 되면, 다음과 같습니다. 이때 기울기는 "-W1 / W2" 가 되고, 절편(Intercept)는 "-W0 / W2"가 되게 됩니다. AND 와 OR, NOR 함..
머신러닝(Machine Learning) 정의 및 지도학습,비지도학습,강화학습 1. Machine Learning (머신러닝) 정의 - Arthur Samuel (1959) : 머신러닝의 학술적 정의는 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야이다. - Tom Mitchell (1998) : 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정하였을 때 경험E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업T와 성능측정P에 대해 경험E로 학습한것이다. - 인공지능의 한 분야이며 컴퓨터가 학습할 알고리즘을 개발하고 알고리즘이 적용된 모델을 구현하고, 구현된 모델을 통하여 컴퓨터가 스스로 학습할 수 있도록 해주는 것을 머신러닝이라고 할 수 있습니다. - 머신러닝은 Training Data를 통해 학습하여 알려진 속성을 기반으로 예측에 초점을 둡니..