코딩로그
8. 딥러닝의 기본 개념과, 문제, 그리고 해결 본문
<딥러닝의 시작>
-
뉴런의 구조 : 어떠한 input(x*w)가 뉴런에 정해지면 뉴런에서 일정한 가중치(b)가 더해져 일정치를 넘으면 output을 내보내고, 아니면 아무 반응도 하지 않는다. 이를 본따 만든 것이 activation function이다.
-
사람들은 다이얼과 선을 이용해 이를 물리적으로 구현하기도 했다.
-
이를 통해 and(전부 1이면 +를, 이외에는 -를 출력)와 or(둘 중 하나라도 1이면 +를 출력)을 예측 할 수 있는 모델을 만들었다. 왼쪽의 그림과 같은 선을 긋는 것이다. 그런데 오른쪽 그림과 같은 경우(xor 문제) 어떻게 선을 그어도 구분을 하기가 힘들다.
<딥러닝의 첫번째 침체기>
-
문제 : Marvin Minsky는 xor문제를 기존의 방법으로 풀 수 없음을 수학적으로 증명했다. 문제를 해결하기 위해서는 층을 여러개 하는 수밖에 없으며, 또한 각각의 층에서 weight과 bias는 학습시킬 수가 없다고 하였다.-> 딥러닝 후퇴
-
backpropagation(오차역전파) 법을 통해 이를 해결하였다. – 예측값에서 뒤로 돌아오면서 w와 b를 수정하는 방식
-
convolutional neural networks을 통해 해결 – 고양이의 시신경이 그림의 형태에 따라 일부의 뉴런만 활성화되는 것 발견 -> 부분부분 신경망을 구성하고, 이를 나중에 조합하는 방식인 cnn개발.
-
90%의 정확도를 보였으며, 이를 이용해 1984~1994에 자율주행자동차가 개발되기도 하였다.
<딥러닝의 두번째 침체기>
-
문제 : 너무 많은 층에서는 잘동작하지 않는 문제 발생, 그림과 같이 층이 10개 이상이 되면 잘 작동하지 않았다. 역전파가 너무 많은 층을 거치며 그 의미가 거의 사라졌기 때문이다.
-
deep learning : 층이 깊은 신경망이라도 초깃값을 잘 주면 문제를 해결할 수 있다.
-
alexnet등 다양한 deeplearning network 가 개발되며 성능이 비약적으로 향상
<실습 - Tensor Manipulation>
-
딥러닝을 본격적으로 시작하기 전 TensorFlow를 여러가지로 조작하며 익숙해지자.
'코딩로그 > 모두를 위한 딥러닝' 카테고리의 다른 글
10. Neural Network 2: ReLU and 초기값 정하기 (0) | 2020.02.01 |
---|---|
9. Neural Network 1: XOR 문제와 학습방법, Backpropagation (0) | 2020.01.27 |
7-2. ML의 실용 : mnist data set 실습 (0) | 2020.01.11 |
7-1. ML의 실용과 몇가지 팁 (0) | 2020.01.11 |
6. softmax regression (0) | 2020.01.11 |