Q.학습이란 무엇인가요? 신경망이 어떻게 학습을 할 수 있다는 것인가요?

Q. L1 loss function이 뭔가요? L2 loss function이 뭔가요?




우리는 학습이라는 것을 하기 위해 아래와 같은 과정을 거칩니다. 예를 들어, 기계가 탁구치는 것을 학습한다고 가정해볼께요.




① 처음에는 기계가 사람이 넘겨준 공을 칩니다.

② 하지만, 상대방 테이블에 정확히 들어가지 않습니다. 

③ 기계는 자신의 행위가 잘 못 되었음 (error)을 인지하고 자세를 바꿉니다.

④ 상대방 테이블에 정확히 들어갈때까지 계속 자세를 바꾸는 과정을 반복합니다.


아주 간단하게 보면 학습이라는 것은 어떤 정답이되는 결론에 도달하기 위해 수 없이 시행착오(trial-error)를 거치는 행위를 의미하게 됩니다.



그렇다면 기계는 시행착오를 통해 어떤 방식으로 학습을 할까요? 기계를 학습시키기 위해 몇몇 학자들이 신경망(Neural Network)이라는 모델을 제시하게 되는데, 그 중 대표적인 모델이 perceptron 입니다. (Rosenblatt이 제시한 perceptron(퍼셉트론)이라는 모델은 딥러닝의 기원이 되는 중요한 모델입니다!)



Perceptron은 뉴런(Neuron)의 작동방식을 본 떠서 만들어졌습니다. 수 많은 뉴런들은 서로 연결되어 전기신호를 주고 받습니다. 




예를 들어, A,B,C,D 라는 뉴런들이 서로 연결되어 있다면, 공부를 할 때는 A->D->C->B, 운동을 할 때는 A->B->D->C 라는 경로를 통해 신호를 전달하게 됩니다. 이러한 뉴런들은 뇌에서 일어나는 모든 활동들에 관여하면서 사물을 인지하고, 학습하고, 판단함으로써 지능적인 역할을 담당하게 되었습니다.


그렇다면 하나의 인공신경망(뉴런)이 어떻게 학습하는지 김성훈 교수님의 동영상을 보면서 이해해 볼까요?


<사진1>





학습이 되는 과정을 이해하기 위해서는 미분의 기하적인 개념을 이해하면 좋은데요. 아래 강의를 보시면서 미분의 개념은 쉽게 잡으시고 강의를 이어서 보시는걸 추천합니다.







지금까지 설명한 내용들을 수식으로 정리해봤어요. 앞으로 딥러닝을 하시게 되면 아래와 같은 그림과 수식들이 쉽게 눈에 들어와야해요!



강의만 들으셔도 학습이 어떻게 되는지 쉽게 이해되시죠? 그런데 문제는 우리가 학습하는 이유가 단지 무언가를 분류를 하기 위해서만 한다는것이 아니라는 점이에요. 예를들어, 무엇인가를 예측하기 위해서도 학습을 하기는 것처럼, 다양한 목적에 따라 학습을 하기도해요. 



1) L2 loss function


유튜부 강의에서 설명한 cost function은 MSE(Mean Square Error)라고해요. MSE는 Least Square Error (LSE) 또는 L2 loss function이라고도 불립니다.






2)L1 loss function


L2 loss function이 있으면, L1 loss function도 있겠죠? L1 loss function의 수식부터 설명하자면 아래와 같아요.


L1 loss function은 Least Absolute deviations (LAD) 또는 Least Absolute Errors (LAE)라고도 불린다고 해요.



3) L2 loss function VS L1 loss function


두 cost function의 공통점은 오차값을 0이상의 양수의 범위로 제한해준다는 점이에요. 제곱과 절대값은 항상 음이 아닌 정수가 나오겠죠?


두 함수의 큰 차이점은 오차값의 크기를 증가시키는 '정도'라고 생각해요. 예를 들어, L2 loss function 같은 경우에는 L1 loss function에 비해 오차값의 크기가 클 수록 더욱 오차의 정도를 배가시키고, 작을 수록 (0<오차값<1) 더욱 감소시키는 경향이 있어요. 


간혹 outlier가 되는 값들이 오차값을 크게 일으키고는 하는데, 이러한 outlier에 영향을 덜 받고 싶다면 L1 loss function을 쓰는것도 하나의 방법이겠어요!



그럼 지금까지 배운내용을 종합해볼께요. 


1. 신경망을 학습을 시킨다는 것은 가중치(w)를 학습시킨다는 것이다.

2. 가중치를 학습하기 위해서는 아래와 같은 과정을 거친다.

- E(w)는 cost function을 통해 얻은 cost value이다. (E(w)=J(Θ))

- 입실론은 learning rate이며 신경망이 적절하게 학습할 수 있도록 도와준다

('사진4'에서 볼 수 있듯이 만약 learning rate이 너무크면 최적화된 값을 갖지 못하고 오히려 cost value 발산하게 되고, learning rate이 너무작으면 학습하는데 오랜시간이 걸린다) 



<사진4>







자! 그럼 마무리 질문을 던져볼께요~


지금까지 설명한 것처럼 모든 학습의 cost function을 L1 or L2 loss function을 사용할까요? 결론부터 말하자면 "아닙니다!" 


우리가 학습하기 위한 목적 또는 문제정의를 어떻게 하는지에 따라서 다양한 cost function이 쓰여요. 그래서 다음장 부터 cost function에 대해 좀 더 다루어보려고 합니다!


P.S 홍보는 절대 아니구요. 저같이 수학적 백그라운드가 없던 사람도 아래 책을 보고 신경망이 학습하는 원리를 굉장히 구체적이고 직관적으로 이해할 수 있었어요. 그래서 공부하실 때, 같이 보시면 좋을 것 같아서 소개할께요!


<사진5>





#퍼셉트론 #Perceptron #학습 #신경망 #Artificial Neural Network #Neural Network #Cost function

#L1 loss function  #Least Absolute Deviations (LAD)  #Least Absolute Errors (LAE)  

#L2 loss function  #Least Square Error (LSE)   #Mean Square Error (MSE)





[사진 래퍼런스]

사진1

http://www.yoonsupchoi.com/wp-content/uploads/2017/08/neuron.jpg

사진2

http://m.hanbit.co.kr/store/books/book_view.html?p_code=B1910379076

사진4

https://www.jeremyjordan.me/nn-learning-rate/

사진5

한빛미디어




딥러닝의 부모님은 누굴까? 딥러닝은 어디서부터 시작된걸까? 



딥러닝이라는 뜻을 이해하기 전에 간단히 딥러닝이 파생된 경로에 대해서 먼저 알아보겠습니다.


<사진1>




딥러닝이란 개념은 "인공지능(Artificial Intelligence; AI)->기계학습(Machine Learning; ML)->딥러닝(Deep Learning(DL)" 순서를 통해 파생이 됐습니다. 그렇다면 딥러닝과 인공지능은 어떤 관계가 있는걸까요?

이 둘간의 관계를 알아보기 위해 인공지능에 대해서 먼저 알아보겠습니다!



[1.인공지능의 탄생]

 

 사실 인공지능의 기원에 대해서는 의견이 분분하지만 여기에서는 "앨런튜링(Alan Turing)"이라는 사람을 소개하면서 인공지능의 기원에 대해서 설명해 보겠습니다!




<사진2>



튜링이 쓴 논문의 첫 번째 문장입니다. "기계가 생각할 수 있을까?" 

튜링이 직접적으로 '인공지능'이라는 단어를 언급하진 않았지만, 

최초로 인간이 아닌 인공물(기계)이 생각이라는 것을 할 수 있을지에 대한 의문을 던진사람이라고 합니다!

(뭐 그 이전에 이런 비슷한 질문을 한 사람이 있다고 하긴 하더구요 ^^;;ㅎㅎ)


위 논문에서 포인트는 "'생각(Thinking)'이라는 것을 어떻게 정의할 수 있느냐?"라는 부분인데,

튜링은 '생각한다'라는 행위를 어떻게 정의했을까요? 어떻게 하면 '기계가 생각할 수 있는지 없는지'판단할 수 있을까요? 튜링은 논문에서 '튜링머신(Turing Test)'이라는 예시를 통해 '생각'이라는 행위를 정의했다고 합니다.


<사진3>



①실험대상에는 질문자(가운데), 사람(왼쪽), 기계(오른쪽)가 있다.

②사람과 기계는 각각 격리된 방에 들어가 있는데, 질문자는 이 사실을 모른다.

③질문자는 사람인지 기계인지 구별하기 위해 왼쪽과 오른쪽방에 질문을 하게 된다.

④질문자가 최종적으로 오른쪽을 사람이라고 판단했다면, 기계가 (사람처럼) 생각할 수 있다고 말할 수 있다.



튜링의 이와 같은 노력은 인간의 지능을 모방하려는 유의미한 시도였고, 훗날 인간의 지능을 모방하려는 수 많은 시도를이 수반된 끝에 한 끝에 학계가 만들어지고, Artificial Intelligence라는 학문이 탄생했습니다.


인공지능 교재들을 자세히 보면 "지능"이라는 개념을 어떻게 정의하고, 지능과 관련된 문제들을 어떻게 풀건지에 대한 방법론 들이 나와 있습니다.



그 중에서 Learning(학습)이라는 개념과 인공신경망(Artificial Neural Network; ANN)이라는 개념이 포함되어 있는데, 딥러닝에서 필요한 두 가지 핵심 키워드(Learning, ANN)가 인공지능이라는 분야에서 나왔다는 걸 알 수 있습니다.


(사실 기계학습 분야도 설명하긴 해야하는데, 이 부분은 나중에 작성하도록 할께요!)


그렇다면, 딥러닝의 기원이라고 할 수 있는 인공신경망(ANN)은 뭘까요? 다음 chapter에서 확인해보겠습니다!






[요약]

딥러닝의 부모님은 인공지능이다 -> 인공지능이 뭔데? -> 인공지능의 한 분야인 인공신경망은 딥러닝의 기원!






P.S

인공지능과 관련된 영화는 많지만 그 중에서 앨런튜링의 일대기를 담은 영화를 추천드려요!! ㅎㅎ




0:43 -> "Like a person.. electrical brain.. digital computer"





[이미지 레퍼런스]

사진1

https://www.kdnuggets.com/2017/07/rapidminer-ai-machine-learning-deep-learning.html

사진2 

https://www.csee.umbc.edu/courses/471/papers/turing.pdf

사진3

https://wsimag.com/science-and-technology/36961-no-turing-test-for-consciousness


[영상 래퍼런스]

https://www.youtube.com/watch?v=nmXzPgVjxRw




안녕하세요!


최근 딥러닝과 기계학습이 많은 주목을 받으면서 많은 분들이 

이러한 분야에 뛰어들고 있습니다.


이러한 흐름에 맞추어 많은 서적들이 출판되고 있고, 우수한 강의들이

유튜브에 올라오고 있습니다.


물론 초반에는 이해하기가 힘들지 않았습니다만

조금만 심도있게 보려고 하거나, 복잡한 수식이 등장하면

여전히 난관에 부딪히기 일수였습니다.


하지만, 배경지식이 전무했던 저로써 제일 힘들었던 부분은 내가 어떤 지식을 채워야 되는건지 

어떠한 방향성으로 공부해야되는지 잘 모르겠다라는 부분이 제일 답답했습니다.




그래서 이 글을 쓰면서 아래와 같은 목표를 세우게 되었습니다.


1. 누구나 시간만 투자하면 이해할 수 있는 글을 쓰자!

- 최대한 개념을 쉽게 설명하되, 개념설명이 길어지는 부분은 아주 적절한 관련링크를 걸어두거나 키워드를 설정하려고 합니다.

2. 나도 내가 이해한 부분이 맞는지 확인하고 싶다!

- 이 글을 읽으시는 분들중에서는 이제 막 공부를 하시는 분들이나, 이미 굉장히 공부를 많이 하신분들도 계실테니 제가 올린 글을 검수받고 싶은 마음도 있었습니다. 그러니 항상 댓글로 질문이나, 잘못된 부분을 지적해주세요! (그 외 다양한 질문들 모두 환영입니다!)


3. 인공지능같이 복잡한 분야도 인문학처럼 쉽게 읽힐 수 있도록 글을 쓰고 싶다!

- 어떠한 개념을 설명하면서 '왜'라는 질문에서 출발하려고 합니다. 그래서 이 글을 읽으시는 분들이 지속적으로 관심을 갖고 읽으실 수 있으셨으면 좋겠습니다! 




주저리주저리 말이 많았고, 뭔가 굉장할 것처럼 쓴거 같지만 사실 다른 분들도 이러한 마인드로 글을 쓰시기 때문에 굳이 '내 글은 특별할거야!'라고 생각하진 않습니다ㅎㅎ (물론 아무도 그렇게 생각하시진 않겠지만요!ㅎㅎ)


다만 저와 같이 배경지식이 없으신 분을 위해서 글을 쓰려고 하고, 많은 분들이 읽어주시고 지적해 주시면 서로가 윈윈하지 않을까 싶습니다ㅎ


그럼 앞으로 잘 부탁드리겠습니다!!!^^

+ Recent posts