저번시간까지 인공지능, 머신러닝에 대해서 알아보았고, 오늘은 간단하게 딥러닝이 무엇인지 알아보자.
딥러닝(Deep Learning)
= 인공신경망을 사용하는 머신러닝 방식
딥러닝을 간단하게 요약하자면 인공신경망을 사용하는 머신러닝 방식이다. 딥러닝이라는 개념을 몰라서 찾아봤더니 더 어려운 개념으로 딥러닝을 설명하네.. 할 수도 있겠지만 차근차근 알아가보자. 일단 큰 틀만 잡자면 딥러닝은 인공신경망이라는 개념을 사용한다!! 딱 이것만 기억하자.
신경망(Neural Network)
일단 인공신경망을 알아보기전에 더 간단한 개념인 신경망이라는 개념을 집고 넘어가자. 모두들 신경망이라는 단어는 어디서 배우지 않아도 필수 어휘로 알고 있을 것이다. 신경망, 위 사진처럼, 우리 몸안에서 자극들을 받아들이고, 내가 몸을 움직이고 싶으면 움직이라는 신호를 전달해주고, 그런 통로역할을 하는 것이 신경망이다. 고등학교때 중추신경계, 자율신경계, 말초신경계 등등 거기서 배우던게 우리가 알고 있는 그 신경망이라는 개념과 동일하다. 여기까지는 아마 이해하는데 큰 어려움이 없을 것이다. 그럼 이 신경망은 어떻게 동작하는 것 일까?
뉴런(Neuron)
=신경망의 동작 원리
자 신경망이 동작하는 상황을 좀 구체적으로 풀어보자. 예를들어, 우리가 뜨거운 물건에 손을 댔을때 순간적으로 손을 떼게된다. 느리게 살펴보면 손을 댄순간 통각이라는 자극신호가 신경망을 통해 뇌까지 갔다가, 뇌에서는 손을 당장 떼!!! 라는 명령을 손에 내린다. 이 명령 신호는 다시 신경망을 통해 손까지 돌아가게 된다.
살짝 느리게 관찰해 봤는데, 이런 자극신호들이 신경망을 통해서 오고가는것은 이제 알겠다. 하지만 우리가 진짜로 궁금해해야하는 것은 신경망이 어떻게 자극을 전달하는지 궁금해 해야한다. 바로 위 사진에 나와있는 뉴런이라는 신경세포가 자극을 전달한다.
뉴런(Neuron)의 동작 원리
뉴런이 어떻게 동작하는지 알아보기 전에 뉴런의 구조부터 익혀야한다. 저 빨간 박스에 그려진 친구가 하나의 뉴런이다. 뉴런은 여러개의 가지돌기들과 한개의 촉색돌기로 이루어져 있다. 이 모습을 눈에 익혀놔야한다.
자. 이제 뉴런이 어떻게 동작하는지 알아보자. 먼저 가지돌기들이 자극을 받아들인다. 그림엔 3개 밖에 안그려놨지만 가지돌기는 여러개가 있기 때문에 n개가 있다고 하겠다. 저 가지 돌기들은 각각의 고유 가중치들이 있다. 저 가중치가 의미하는 것은 어떤 자극을 받아들이는데 있어서 가장 중요한 가지돌기라는 것이다.
즉, 가지돌기1처럼 가중치가 1인 친구는 상대적으로 낮기때문에 해당 자극을 받아들이는데 있어서 큰 역할을 하는 돌기는 아니기때문에 아주 큰 영향이 안가지만, 가지돌기 2처럼 55의 가중치는 주변 가지돌기들보다 아주 큰 가중치이기 때문에 작극을 받아들이는데 있어서 아주 큰 영향을 주는 가지돌기들이라는 것이다.
가중치가 높은 가지돌기가 중요한 신호
일단 여러개의 가지돌기들이 자극을 받아들인다고 했다. 그리고 이 종합적으로 받아들인 결과값들을 다 더한 값이 이 뉴런이 생각하는 특정 임계치 이상이면 뉴런이 활성화되고, 그렇지 않으면 활성화 되지 않는다.
여기서 활성화라는 것은 뭘까? 활성화는 Activation 됐다고 하며, 뉴런 꼬리에 해당하는 촉색돌기에 다음 뉴런으로 전달하라는 신호를 주는 것을 뜻한다. 촉색돌기에 신호가 들어오면 촉색돌기 말단에서 시냅스를통해 다음 뉴런으로 신호가 전잘된다. 이렇게 뉴런에서 다음 뉴런, 그 뉴런에서 그 다음뉴런, 뉴런에서 뉴런~~~~~~뉴런~~~~쭈구우우욱~ 어마무시한 뉴런들을 거쳐 비로소 뇌까지 도달하게 되는 것이다.
뉴런(Neuron)의 임계치(Threshold)
자 다시 뒤로 돌아가서 임계치(Threshold)라는게 뭘까? 뉴런의 구조를 보면 특이한점이 있다. 자극을 받아들이는 가지돌기들은 여러개인데 최종적으로 다음 뉴런으로 신호를 전달하기 위한 돌기는 하나다. 맞다. 뉴런은 자극들을 받아들여 종합한후 자기가 뒤로 자극을 전달해야하는지 말지를 판단해서 신호를 전달하는 것이다.
그래서 위에서말한 자극을 뒤로 전달해야할지 말지가 바로 임계치다. 예를들어 3개의 자극 10, 23, 7이 들어왔다고 보자, 각 가지돌기들의 가중치(중요한 신호라고 생각하는 정도)를 입력 자극에 곱해서 총 합쳐주자,
가지돌기1의 입력 : 10 x 가중치 1 = 총 10
가지돌기2의 입력 : 23 x 가중치 55 = 총 1265
가지돌기3의 입력 : 7 x 가중치 17 = 119
뉴런의 총 입력자극의 합 : 1394
자 간단한 계산을 통해 뉴런이 느끼는 자극의 합을 알아냈다. 1394인데, 여기서 해당 뉴런의 임계점이 1300이라면(예를들어) 현재 1300보다 큰 1394라는 자극이 들어왔으니 촉색돌기에 신호를 주어 다음 뉴런으로 자극신호를 전달하는 것이다. 와우, 아주 구체적인 과정을 통해서 뉴런이 어떻게 동작하는지 알아보았다.
반대로 임계치가 1300인데 모든 가지돌기들의 자극 합이 1299라면? .. 촉색돌기는 활성화되지 않는다. 즉 1이라도 부족하면 활성화 되지 않고 특정한 어느 임계점을 넘어야지만 활성화 되는 것이다. 우리가 중고등학교때 배웠던 역치라는 개념과 동일하다고 생각하면 된다.
자 여기까지 뉴런에 대해서 알아보았다! 인공신경망을 이해하기 위한 기초를 쌓은셈이다. 이제 인공신경망이 무엇인지 알아보자.
인공신경망(Artificial Neural Network) / ANN
인공 뉴런으로 만들어진 신경망
자 인공신경망은 말그대로 저 위에서 말한 모든 과정을 수학적으로 모델링하여 인위적으로 만든 신경망이다. 인공신경망에도 뉴런이 있고, 그 뉴런은 인공 뉴런이라고 부른다. 이 인공 뉴런을 수학적으로 모델링 한것이 퍼셉트론(Perceptron)이라는 개념인데, 이 개념은 다음 포스팅에서 구체적으로 알아볼 예정이다.
이 인공신경망 구조를 사용하는 이유는 사실 AI 발전의 난제였던 논리적베타합(XOR) 문제를 극복할 수 있는 방법으로 제시되었기 때문이다. 향후 이 신경망 알고리즘을 통해 어떻게 XOR 문제를 극복했는지도 알아볼꺼니 당장 어..? 저게 뭐지 ㅠㅠ 할 필요는 없다. 일단, 여기서 알아둬야할 것으론, 인공신경망은 사람의 신경망과 유사하게 동작하는 수학적 모델이다~~ 라고 생각하면된다. 여기서 계속 수학적으로 라는 말을 하는 이유는 ㅋㅋ 진짜 뭐 소스코드로 쭈르륵 써서 만든 개념이 아니라, 논리적인 증명이 수학적으로 가능하기 때문이다. 나중에 이 수학적인 부분도 다루겠지만 맛보기로 알려준다면, 미분, 적분, Convolution, Dot Product 등 선형 대수의 개념으로 구현해냈다.
딥러닝(Deep Learning)이란 무엇인가?
다시 처음으로 돌아왔다. 딥러닝이 뭘까? 바로 위에서 말했던 인공신경망 모델을 통해서 머신러닝하는 개념을 보통 딥러닝 이라고 한다. 그러니까 딥러닝과 인공신경망이랑 뗄레야 뗄수가 없는 구조인거다. 이제 딥러닝의 개념이 어느정도 잡히는가? 이해가 잘 안간다면 딥러닝을 이해하려고 하지말고 인공신경망이 무엇인가? 라고 생각해보고, 인공신경망을 통해 어떻게 머신러닝을 할 것인가?의 내용이 바로 딥러닝에대한 모든 것이다.
머신러닝(Machine Learning)과 딥러닝(Deep Learning)과의 관계
자 딥러닝은 머신러닝의 한 분야라고했다. 그럼 머신러닝에 딥러닝 말고 뭐가있을까? 뭐 여러가지들이 있지만 간단한걸로는 선형 회귀, 로지스틱 회귀 등 여러가지 방법이 있다. 이 다른 방법들중 딥러닝의 특징은 비정형 데이터들을 잘 다룬다는 것이다.
비정형데이터라고하면 통계나 수치가 정리되어있는 엑셀표처럼 이미 만들어진 데이터들이 아닌 이미지, 영상, 음성, 소리, 텍스트, 번역 등 뭔가 실시간? 혹은 변칙수가 많은 입력들이 들어와 분석할때 딥러닝이 강하다. 그래서 신경물질을 전달하는 뉴런에서 영감을 받았는지도 모른다.
반면에 선형회귀, 로지스틱 회귀 같은 방법은 정형 데이터에 강하다. 정형데이터라고 함은 데이터베이스, 레코드파일, 엑셀 등 뭔가 수치나 통계로 뽑힌 데이터들이다. 뭐 예를들면 2010~2020년도 유방암 환자에 대한 신체 수치들에 대한 데이터들, 이런 정적인 데이터들을 읽어들여 결과를 내는데 더 좋은 성능을 발휘한다.
이제 앞으로 인공신경망의 최소 단위인 퍼셉트론과 퍼셉트론을 여러개 깔아 단일 계층 퍼셉트론(SLP), 다중 계층 퍼셉트론(MLP) 등 인공신경망의 기초내용을 탄탄히 다진 후 코드 실습을 할 예정이다.
[딥러닝] #4 인공신경망(ANN)과 딥러닝(Deep Learning)에 대해 알아보자! / 뉴런(Neuron)의 동작 원리
#딥러닝 #인공신경망 #ANN #DP #뉴런 #촉색돌기 #촉삭돌기 #가지돌기 #가중치 #임계치 #Threshold #기초 #기본 #개념
'IT > 머신러닝 | 딥러닝' 카테고리의 다른 글
[딥러닝] #6 구글 코랩 / Google Colaboratory / 파이썬 클라우드 개발환경 설정 (0) | 2020.12.08 |
---|---|
[딥러닝] #5 퍼셉트론(Perceptron)에 대해서 알아보자 / 인공신경망(ANN) 퍼셉트론과 뉴런의 차이점 / 편향 b(bias)의 의미 (3) | 2020.08.27 |
[딥러닝] #3 머신러닝이 무엇인지 알아보자! / 인공지능과의 관계 / 지도학습 / 비지도학습 / 강화학습 (2) | 2020.08.23 |
[딥러닝] #2 인공지능의 역사 / 퍼셉트론의 XOR 문제 / 인공신경망(Artificail Neural Network : ANN) (0) | 2020.08.23 |
[GPT-3] OPEN AI 자연어 처리 API GPT-3 소개 및 사용 신청하기 (0) | 2020.08.23 |