[인공지능] 5주차(이론) | 다층 퍼셉트론(multi-layer perceptron MLP)

dusruddl2·2022년 9월 28일

SJU_인공지능

목록 보기
14/23


✅ Agenda

  • History of MLP

✅ Ultimate dream: thinking machine

뉴런을 본따 인간의 뇌를 모사하는 것을 목표로 만들어진 인공신경망(NN)

인공신경망(NN, Artificial neural network): 동물의 생물학적 뇌의 기본단위인 인간의 뉴런을 모방하여 모델링한 네트워크


✅ Activation function

뉴런이란?)
각각의 채널마다 들어온 신호에 weight가 곱해져서 들어오고, 이를 계산한 결과가 일정 값이 넘으면 1이 되어 전기적 신호를 만들어내고(활성화), 그렇지 않으면 0이 되는 구조!

신호를 만들어내는 함수가 바로 activation function!

  • 1이나 0을 만드는 아이

우리는 위와 같은 뉴런퍼셉트론이라고 부를 수 있게 됩니다!

  • perceptron(퍼셉트론): 선형분류기, feedforward network

✅ Logistic regression units

위에서 본 것처럼 뉴런을 여러 층 쌓는 것이 바로 MLP(Multi Layer Perceptron)이라고 하는 것!
핵심은, 우리가 앞에서 배웠던 로지스틱 유닛들을 쌓아서 만들 수 있다는거!


✅ Hardware implementations

사진은 지금 우리의 컴퓨터가 아니라 단순히 논리연산만이 가능한 형태. 오른쪽 사진처럼 직접 돌려서 가중치 값을 조절했다는데.. 이런 과거에서 아래와 같은 생각이 나왔어


✅ False Promises

인공지능에 대해 너무나 과도한 신뢰가 있었음.. 머지않아 인간처럼 의식을 갖고.. 걷고 말하고.. 할거라고 생각! 아직까지도 힘든 일인데 말이지 ㅎ


✅ (Simple) AND/OR Problem: linearly separable

왜 사람들은 주구장창 나오는 이.. AND / OR / XOR 문제를 풀기를 바랐을까?
이는 바로 Computer에 필요한 로직이기 때문이지!!! (가장 기본적인)
위의 사진과 같이 OR, AND는 어렵지 않게 해결할 수 있었따구


✅ (Simple) XOR Problem: linearly separable?

XOR은 서로 같을 때 0이고, 서로 다를 때 1인 것인데.. 쉽게 생각했지만 안 풀리네 ㅠ


⛄ XOR Problem is

Minsky 교수님 조차.. XOR 문제는 그 누구도 풀 수 없다고 얘기를 하셨다
중간에 저러한 은닉층이 있다 하더라도 풀 수 없다고 단언했었음. 저걸 어떻게 학습하냐는 거야

근데 아래에서 이렇게 학습해버리지 :)


🔅 Backpropagation

시간이 많이 흘러서....

이때 Paul교수가 역전파, Backpropagation 개념을 통해 이를 해결함!

  • 입력으로 X가 들어오면 forward을 통해서 학습시키고, 그 결과가 'dog'가 나왔다고 하자. 그러면 실제 label인 'face'와 다르니까 error을 구하고, 그것을 바탕으로 backward로 W,b를 업데이트 하는 과정을 의미해
    그 다음에는 갱신된 W,b로 또 학습을 이어나가고 이런 방식으로...

이러한 역전파로 XOR문제도 해결했을 뿐 아니라 더 어려운 문제들도 해결할 수 있게 됨
(이때 당시에는 별로 유명하지 않다가 거장이신 Hinton교수님이 미래에 언급함으로써 유명해짐)


✅ Convolutional Neural Networks

고양이에게 여러 패턴을 보여주고, 뇌의 시그널이 어떻게 변하는지 알아봄. 알게 된 사실은, 어떤 영상이 주어졌을 때 그것 전체를 다 보고 feature을 뽑아내는 것이 아니라, 부분부분부분 연산들의 결합을 통해서 최종 feature가 만들어지는 것이다.


✅ Popularity of Neural Network

최초의 NN기반의 자율주행 자동차. 많은걸 하지는 못하고 그냥 차선 검출 정도,,
아직도 구현이 되지는 않았지만, 어찌됐든 굉장히 핫하다는 것을 알 수 있지


⛄ A Big problem

또 다시 AI winter....!backpropagation이 P가 깊어지면 깊어질수록 학습이 안되는 문제점 발생....! (**graidient vanishing**)
그래서 이때 NN을 이용하지 않은 SVM이나 RF들이 많이 제안이 되었어. 그래서 LeCun 교수님조차 요즘 모델들이 NN기반보다 훨씬 좋은 것 같네~라고 말씀을 하실 정도로

  • 위의 사진에서 봐도 output층에서 input층까지 weight와 bias가 가야 제대로 학습이 되는 것인데 가다가 중간에 0이 되어버리는 문제점이 발생했다 이거야.

🔅 Breakthrough

역시 인간은 대단해. 또 해결해버렸네
어떻게 해결했을까?
1. weight들을 initialization 초기화하자!
2. dropout을 이용해서 깊게 쌓을 수 있게 해보자!

이때부터 Deep Nets, Deep Learning이라는 용어가 유행하게 되었음 :)

  • 딥러닝의 3대 거장: Hinton, Lecun, Bengio

연구자들 사이에서 NN을 이용한 방법들이 핫했던건 아니다. 앞서 말했던 SVM과 RF도 충분히 좋은 성능을 냈으니까. 하지만 2012년, 이 대회를 통해 너무나도 성능이 좋아지는 것을 깨닫게 되었음!

인터넷과 SNS의 발달 덕분에 이제 데이터가 많아진거야. Large scale!!
원래는 error를 5%로 줄여도 잘했다인데 CNN을 이용하고서부터는 10%이상이나 줄인 것!
또한 2015년에는 사람보다도 잘 분류하는 지경에 이르렀음ㅎ


✅ After Breakthrough

이렇게 사진 하나만 보여줘도 이미지 캡셔닝을 해주는 기술들이 나오고 있음 :)

음성인식 분야도 컴비분야처럼 deep learning을 이용했더니 error가 확연히 줄어든 것을 확인할 수 있었다!
이게 어떤 의미를 가지냐면 직접적으로 회사에서 돈을 벌 수 있음. 주문 전화를 했을 때, AI랑 대화를 할 수 있는 그 수준까지.

게임을 할 때, 사람과 대결을 하는 것이 아닌 컴퓨터랑. 이미 인간보다 너무나 잘하는 경지에 도달 ㅎ

이렇게 우리 삶에 딥러닝이 다가 올 수 있었던 이유는 이렇게 요약할 수 있다.
1. labeled된 data의 증가
2. GPU의 등장으로 빨라진 연산 속도
3. weight 초기화를 시작한 것
4. 잘못 사용하고 있던 non-linearity를 바꾼 것

마지막 이야기는 다음 시간에!
아마 ReLU이야기가 나올 것 같아 ㅎ

profile
정리된 글은 https://dusruddl2.tistory.com/로 이동

0개의 댓글