slide-image

 

ANN

# 01

 

인공 신경망을 어떻게 설명해야 할 지 모르겠다.

 

신경망에서 사용되는 뉴런이 다른 뉴런의 축삭돌기와 연결되어 연결된 시냅스의 강도에 따라 뉴런들의 영향력이 결정된다는 것을 모델링을 한다면, 이런 영향력의 합이 역치를 초과하면 신호가 발생해 축삭돌기를 통해 다른 뉴런에게 신호가 전달되는 식을 모델링 하려고 한다.

( 출처:  http://cs231n.github.io/neural-networks-1/ )

이런 식으로 되는데, x0, x2, x2는 입력되는 뉴런의 축삭돌기로부터 전달되는 신호의 양이며,

w0, w1, w2는 시냅스의 강도로 입력되는 뉴런의 영향력을 나타낸다.

w0x0+w1x1+w2x2는 입력되는 신호의 양과 해당 신호의 시냅스 강도가 곱해진 값의 합계로 최종합계가 다른 뉴런에게 전달되는 신호의 양을 결정짓는 이런 규칙을 활성화함수f라고 부른다.

 

이건 이제 컨볼루션 뉴럴넷을 적용한 것이고, perceptrn은 linear classifier으로 생각하면 된다. 

통계적 classification의 목적은 오브젝트의 특징을 이용해서 어떤 그룹에 속하는지 밝혀내는 것이다.

그리고 linear classifier은 이런 classification을 이용하는데, 특징의 선형 combination을 이용한다.

 

로지스틱 회귀는 간단하게 많은 feature들을 분류할 때 어떻게 선을 긋는지를 정의하는 것이다. 

(출처 : http://www.aistudy.com/neural/multilayer_perceptron.htm)

위에 보면 알겠지만, 히든 레이어는 3개면 어떤 모양이든 classification이 가능하므로 3층이상으로 만들지 않는다.

 

https://www.youtube.com/watch?v=BR9h47Jtqyw&feature=youtu.be

위의 동영상은 로지스틱 회귀와 뉴럴넷을 설명한 동영상인데 굉장히 잘 설명한 것 같다.

일단은 선의 경사도를 왔다갔다 하면서 error을 줄이는데, 모든 점의 penalty를 더해서 계산하는 식이다. 

그리고 이제는 선형식처럼 weight를 주어서 계산을 하는 함수를 activation function이라고 하며 이걸 통해서 output(classification을 완료한 상태)을 구한다.

 

여러가지 activation function들이 있는데 sigmoid, Leaky ReLU, tanh, Maxout, ReLU, ELU 등등이 있다.

시그모이드는 어느 정도에 도달하면 성능이 잘 늘지 않고 때문에 세밀하게 성능을 조절하기 힘들다. 

 

또 다른 뉴럴넷 추천 영상으로는 

https://www.youtube.com/watch?v=aircAruvnKk&feature=youtu.be

이것이다.

음 한국어 자막이 중간에 되다 말아서 영어자막이 더 편할 것 같다. 사실 발음이 정확하신 편이라 무자막도 볼만하다.

weights들과 bias 상수로 이루어진 식을 시그모이드에 넣어서 구하는 방식을 설명하신다.

 

그래서 모델링을 할 때 어떻게 하냐면, 일단 input과 outpur 개수가 정해지면, hidden layer을 몇 개 만들지, 각 layer의 노드 수, feature를 누가 추출할지(사람, 기계) 등을 정하는 것 같다.

 

신경망의 종류로는 MLP와 CNN, RNN이 있는데, 각각을 자세히 설명하지는 않겠다.

MLP는 multi layer perceptron으로 가장 기본이 되는 방식이다. classification과 problem prediction에 최적화 되어있다

CNN은 convolutional neural networks이고 이미지 프로세스를 위해서 많이 사용되된다. . dimention을 확장하면서 with, height, depth를 넓히는 방식이다. MLP가 모든 노드가 연결되어 있다면 CNN은 pooling(각 영역에서 큰 것만 고름)등을 통해서 노드를 줄이면서 처리를 한다.

RNN은 recurrent neural networks로 NLP에 많이 사용이 되는데, CNN은 이미지 처리를 할 때 픽셀 처리 순서가 상관없듯이 처리 순서가 중요하지 않지만, RNN은 순서가 중요하다. POS 태깅 처럼 서열화를 해야할 때가 있기 떄문에 이럴때 많이 쓰인다.

LSTM은 나중에..

 

(추가중)

 

 

 

'etc > NLTK' 카테고리의 다른 글

[NLTK] #03  (0) 2019.05.04
[NLTK] #02  (0) 2019.04.09
[NLTK] #01  (0) 2019.04.08