기타 지식

교양 수준의 딥러닝

서문

이 글은 당신을 전문가로 만들어주지 않습니다.

딥러닝 시리즈 글이 안나와서 개론만 쓴 글임.

 

0. AI란?

인공지능.. 넓게 보면 유저 대응형 몬스터도 ai임

스크립트형 ai라고 부르고, 이걸 아주 제대로 만들면 전문가시스템이라고 부름

30년 전에 자율주행에 썼던 것은 아마 이런 형태일 것이고, 체스 챔피언인 디퍼 블루도 전문가 시스템임

프로그래밍 대회 라고 나오는 것들은 전부다 전문가시스템을 얼마나 잘 짜느냐에 가까움.

 

하지만 이는 결과적으로 사람이 잘 해야 하는 거기 때문에, 컴퓨터 스스로 정책을 학습할 수 있도록 하는 방법을 고안했고

이쪽 계열을 모두 기계학습 (머신러닝) 이라고 부름.

현재 머신러닝은 딥러닝 보다 나은 성능을 가진게 없어서 머신러닝=딥러닝 으로 이해를 하는데,

그 외에도 의사결정트리, kNN, SVM, Q-learning등등 여러 알고리즘이 있었음.

여러 알고리즘이 있으나, 아직까지는 딥러닝을 개선하는 것보다 성능이 좋은 것이 없음.

예를 들어 kNN은 k번째 가까운 이웃이라는 뜻으로, 기존의 데이터를 기반으로 새 데이터가 어느 그룹에 들어가는지를 판단하는 알고리즘임.

이제 아무런 데이터를 넣으면 왼쪽에서는 이게 빨간색인지 파란색인지 초록색인지 지정할 것이고, 오른쪽에서는 빨간색인지 파란색인지 지정할 수 있음.

문제는.. 충분히 복잡한 데이터에서는 성능이 잘 안나옴.

예를들어 28*28 픽셀의 칼라이미지는 각 픽셀마다 3차원, 픽셀이 784이기에 총 2400차원에 해당하는 아아아주 복잡한 이미지임.

근데 사람눈에보면 28*28픽셀은 굉장히 데이터가 없음

2.png컬러가 없는 28*28 차원 데이터의 예.

하여간 kNN은 현대에 사장되었지만,

Q-learning에 딥러닝을 적용한 DQN이란게 나오고,

Q-learning알고리즘을 계속 도입한 D3QN이라던지 나오며

명맥을 이어가기도 하고 그래.

 

1. 딥 러닝이란?

앞에서 말한 ai 중, 기계학습 중 하나에 속하는 방법.

와 끝났다!

 

딥 러닝은 인공 신경망(NN) 을 깊게 연결한,딥-한 인공신경망이야.

ILSVRC라고 이미지 분석대회가 있는데, 여기서 딥러닝이 적용된 예를 보면

2014년의 준우승한 VGGNet(VGG19)는 19층, 우승한 GoogLeNet은 22층으로 구성되었고,

2015년에는 152개의 층으로 구성된 ResNet이 우승을 했음.

엄청 딥-하지.

 

그러면 여기서 다시 이야기가 나온다.

인공신경망이란 무엇인가?

인공신경망은 어떻게 학습을 하는가?

 

2. 인공신경망이란?

3.png

근본적으론 이렇게 생긴 것을 인공신경망이라고 부름.

위의 28*28픽셀의 이미지에, 각 픽셀 하나하나가 입력층에 동그라미 하나가 되고,

그걸 은닉층에서 잘 계산을 하면 출력층은 무언가의 값이 나옴.

은닉층이 뭔지 모르겠다면, 입력과 출력 외의 모든 것을 은닉층이라고 불러.

1개의 출력값으로 바로 0~9를 구별하거나

100개의 출력값의 조합으로 0~9를 구별하는 짓도 가능하지만,

보통 분류모델에서는 답이 나올 수 있는 후보 갯수만큼 출력층을 만들고, 각 출력층은 각 후보일 확률을 의미하게 만듦

위에서 예시로 든 28*28픽셀의 이미지는 0~9까지 10개 중에 한개가 되는데, 이러면 출력층의 동그라미는 10개가 되겠지.

 

저기 화살표에 있는 W는 weight라고 해서 가중치라고 불러.

은닉층에서 잘 계산을 한다고 했는데, 어떤 계산이냐면

각 입력마다 가중치를 곱하고, 그 결과를 모두 더한 뒤 bias를 더하는 계산을 해.

그리고 히든레이어도 쪼개져있지? 그 다 더한 계산 결과를 적절히 가공해서 다음 레이어의 입력층으로 사용해.

적절히 가공하는 과정을 활성화 함수라고 불러.

 

즉 인공신경망은, 어떠한 입력에 대해서, 적절히 계산을 해서, 어떠한 출력을 내는 구조를 말해.

어..? 이건 그냥 함수잖아? 뭐가 다른거지?

인공신경망은, '신경'을 모사했어.

신경의 특징은 일정 자극 이하는 무시해. (역치)

위에서 bias를 더하는 계산이 이 부분이 되지.

여러 신경세포로부터 많은 자극이 전달되어도, 다음 신경으로 넘어가는건 한계가 있어.

그래서 초기 인공신경망에서는 결과를 적절히 가공하는 함수로 시그모이드 라는 함수를 썼어.

6.jpg

지금은 수학적 편의를 위해서 시그모이드는 쓰지 않아.

vanishing gradient라는 문제인데, 교양에서 다룰 내용은 아냐.

8.png

이 점을 참고해도 인공신경망은 함수야.

아주 비효율적인 함수.

비효율적인데 왜 쓰냐고?

아래 설명할 학습 을 하는데 아주 효율적이거든.

 

그 외에 CNN이라고 해서 아래와 같은 형태나, (이미지 처리에 많이 씀)

4.png

 

RNN이라고 아래와 같은 형태 (연속된 데이터를 처리하는데 많이 씀. 주로 문자열 처리)

5.png

와 같이 입력이나 출력층에 장난을 친 인공신경망도 있지만 본질적으론 같은 구조야.

어떻게 장난을 쳤는지는 교양영역은 아니니 알아서 찾아보도록.

 

3. 인공신경망은 어떻게 학습하나?

경사하강법이야.

7.jpg

경사 하강법이란, 위 그림과 같이 함수의 해를 모를 때, 미분과 계산을 반복해서 그 함수의 해를 찾는 방법을 말해.

인공신경망은 함수야.

인공신경망이란 함수의 해를 찾는 과정이 바로 경사하강법이고, 이것이 흔히 말하는 학습이야.

우리가 생각하는 학습이랑 많이 다르지? 사실 미분을 하면서 해를 찾아가는 과정이야.

10만번 학습했다, 뭐 이런 이야기가 나오는데, 위 그림은 3번 학습해서 x3에 도달한거야.

경사하강법만 가지고도 이야기할게 아주 많아. 아주 많은데, 교양의 영역이 아냐.

 

하지만 경사하강법을 위해서는 함수의 출력을 적절히 바꿀 필요가 있어.

이 적절히 바꾼 함수의 출력값을 cost함수 라고 불러.

많이 쓰는 cost 함수는 cross entropy 라는 함수인데, 해당 함수의 뜻은

인공신경망의 출력층 값과, 정답지의 값이 얼마나 다른가? 야.

 

즉 인공신경망은 출력층의 값과 정답지의 값이 얼마나 다른지를 의미하는 함수값을 최소화 하는 방법으로 경사하강법을 사용해.

위 함수에서는 f(x)의 값을 0을 만들기 위해 x값만 수정했지만,

인공신경망에서는 그 값을 수정하기 위해서 출력층 이전 레이어의 가중치를 하나하나 수정해야지.

 

다시 들고오자.

3.png

출력층 output layer O 에 값을 바꿔야 해.

O1의 값은 K1*Wko11 + K2*Wko12 + K3*Wko13 + Bko1 이고

O2의 값은 K1*Wko21 + K2*Wko22 + K3*Wko23 + Bko2 야.

경사하강법으로 바뀔 숫자는 이전 레이어의 출력값인 K일까? 출력층의 가중치인 Wko일까?

정답은 가중치인 Wko가 바뀌어.

어? 그러면 레이어가 여러개여도 의미가 없지 않아?

이때 나오는게 오차 역전파 라는 거야.

가중치 Wko11과 Wko21에 의해 K1의 값이 어떻게 바뀌어야 할지 정해지고,

K1의 값은 J1*Wjk11 + J2*Wjk12 + J3*Wjk13 + Bjk1 이고 ....

출력층을 교정하고, 그 전의 레이어를 교정하고, 교정하고.. 점점 앞으로 교정한다고해서 해서 역전파야.

cost함수는 항상 0이상의 값을 취하므로, 이론적으로 학습을 한다면 cost함수가 가장 작은 값(0)이 되도록 학습이 돼.

 

여기까지 봤으면 교양수준에서는 충분하지 않을까?

 

4. 그 외 흥미로운 이야기들

학습을 이야기하면 항상 over-fitting이야기가 나와.

9.jpg

연계의 데이터분포는 이상과 달리 매끄럽지 못해

그래서 현실 데이터를 기반으로 학습을 아주 왕창 돌려버리면, 까만선이 아니라 초록색선이 나와.

그런데 그림에 있는 노란색 데이터는 파란색으로 분류해야 할까? 빨간색으로 분류해야 할까?

대부분의 경우에는 빨간색이야. 몇몇 돌연변이들 때문에 오히려 실제 환경을 잘못 판단하는거지.

과적합 때문에 모델이 필요이상으로 복잡해서도 안되고, 필요이상으로 학습해서도 안되는 거야.

문제는.. 과적합인지 아닌지 현실에 돌려보기 전까진 알기 어렵단거지. 호호

보통은 트레이닝셋에서는 점수가 올라가는데 테스트 셋에서 점수가 떨어지는 걸로 알아채는데

테스트셋에서 성적이 올라가도 현실에서 성능이 떨어지기도 하지 호호호

 

경사하강법의 이모저모

49-638.jpg

GD만 설명했지만, 딥러닝의 꽃이 이 부분인지라 이런 여러 발전형이 있습니다

그냥 딥러닝을 다루는 사람은 Adam만 쓰면 되지~ 하고 생각할 수 있지만, 흥미롭지 않습니까? 호호

 

batch normalization

오차역전파를 했다면, 같은 입력을 했을때, layer 1의 출력이 바뀝니다.

어라? 그러면 아까 layer1의 출력이 ver1일때 기준으로 layer 2의 가중치가 정해졌는데, ver2에서는 해당 내용이 안맞네요!

이런.. 학습한게 헛수고가 되버려써...

(헛수고까진 아니고 효율이 떨어짐)

이해가 안된다면, 젠가의 아랫층을 바꾸는 바람에 위층이 불안해진 것을 떠올리십시오

1층은 입력층이고, 옥상은 출력층입니다.

그래서 layer 1의 출력을 정규화 해버립니다.

normalization이란, 정규분표화 하는 겁니다.

layer 1의 값을 아래와 같이 분포하도록 출력단 함수를 조물락거리는 내용입니다.

10.jpg

 

 

local min

11.jpg

딥러닝의 핵심은, 경사하강법을 통해서 출력을 최대한 목표값에 맞추는 함수를 만드는 내용입니다.

하지만, 경사하강법은 반드시 global minimum, 즉 목표값에 도달한다는 보장은 없습니다.

아무리 열심히 학습해도 98%의 정확도를 가진다면, local min에 빠졌거나, 모델 성능의 한계라고 생각했지요.

하지만 얼마전? 좀 옛날?에 파라메터가 못해도 십만개씩 되는데, local min에 빠지기 그렇게 쉬울리가 없다 라는 이야기가 나옵니다.

위 그래프의 saddle point에 갇혀서, 이동하지 못하고 있는 거라는 이야기였지요.

변수 1개 기준으로 기울기가 0인 지점은 경사하강법에 의해 ++이거나 +-이거나 -+ 경계면 인데, n개의 변수가 모두 ++ 경계면(local min)일 가능성은 3^n 분에 1이라는 주장입니다.

어때요? 그럴싸 한가요? 하지만 후속 논문을 보지 못해 saddle point인지 local min인지 구별하는 법을 어떻게 아는지 모르겠네요.

 

이처럼 딥러닝은 핫한 분야라 계속 새로운 이야기가 나오고 있지

지금 직장에서는 다른일을 해서 아쉽다.

11개의 댓글

더럽게 이해가 안된다면, 원래 컴돌이들 말이 그렇게 합니다.

1
16 일 전

딥러닝추 대학원에서 한거 생각나네

0
16 일 전

딥러닝은 보면 볼 수록 물리에서의 해석역학이랑 비슷한 것 같음

 

라그랑지안 역학에서 물체의 상태 혹은 궤적이 가지는 값은 처음 input 값과 output 값 사이의 수많은 경우의 수에서

 

Action (cost 함수) 이라는 값을 미분을 통해 최소화되는 지점을 찾는 것(gradient decent)이지만 딥러닝 문제점에서 나온 것처럼

 

그 지점이 결과적으로 기울기가 0인 지점을 찾는 것이라 saddle point인지 local minimum 값인지 모른다는 것도 비슷하네

0
16 일 전

제가 본 딥러닝설명중에서 가장 이해가 많이된 글이네요

0
@나이상해

고것은 아마 기존에 읽으면서 아는게 많아져서 그럴거야

0
16 일 전

오오 글 분량에 비해 알맹이가 많네요 굿굿

0
16 일 전

오 쓰려다가 까먹었는데 다행이군...

0

"모델 아키텍쳐들이 사실 역으로 adam에 최적화되게 만들어 지고 있는게 아닐까?" 라는 논문을 본적 있는데 흥미롭더라

0
12 일 전

딥러닝 ㅇㄷ

0
11 일 전

지금 한창 배우고있는데 맨날 영어로 된 문서만 읽다가 이렇게 읽으니까 진짜 이해 잘되네 제대로 한글로 배워보고싶다..

0

ㅊㅊ

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
10818 [기타 지식] 방탄복에 변화 21 알파카파카카 12 14 일 전
10817 [호러 괴담] [살인자 이야기] 술에 취해 아무것도 기억나지 않습니다. 5 그그그그 2 14 일 전
10816 [역사] 미얀마는 민주화의 꿈을 꾸는가? 43 골방철학가 66 15 일 전
10815 [과학] 도카이촌 핵 임계사고 환자들의 초기 치료 결과 2편 25 바른말고운말하는사람 13 15 일 전
10814 [기타 지식] 2019년 경찰청 성범죄자 연령 통계 8 메메메메메메 3 15 일 전
10813 [기타 지식] 2019년 검찰청 아청법 위반, 성매매 알선 범죄자 연령별 통계 9 메메메메메메 3 15 일 전
10812 [자연] 제주 사진 43 rosiee 11 16 일 전
10811 [호러 괴담] [살인자 이야기] (스압)오차드 타워 이중 살인 사건 1 그그그그 3 16 일 전
10810 [기타 지식] 교양 수준의 딥러닝 11 월급받으며개드립하기 6 16 일 전
10809 [과학] 도카이촌 핵 임계사고 환자들의 초기 치료 결과 1편 26 바른말고운말하는사람 14 16 일 전
10808 [유머] 최근 주택(집)관련 TV프로그램 모음 4 왈왈멍멍으르렁 1 16 일 전
10807 [역사] 공산당 활동이 금지되어 있거나 금지였었던 국가들 8 LG벨벳 9 17 일 전
10806 [역사] 한비자가 말하는 나라가 망하는 47가지 징조 36 개월째창업중 17 17 일 전
10805 [기타 지식] [상식] 국민 횟감 "광어", 고급 생선 ? 45 EINFP 41 18 일 전
10804 [기타 지식] 철학가 랄프 왈도 에머슨의 보석같은 어록 '자기 신뢰&#... 4 날카로운입담 5 18 일 전
10803 [과학] 딥러닝 시리즈 ) GAN이 몰까요 2 (그림넣음!) 20 공정한비교 1 18 일 전
10802 [기타 지식] 야밤(?)에 쓰는 워해머40k를 시작하는 방법 -3 9 붉은원숭이 1 18 일 전
10801 [호러 괴담] [살인자 이야기] 1,853년형을 선고 받았지만 22년형으로 감형... 6 그그그그 3 18 일 전
10800 [기타 지식] 코인이란 무엇인가? 44 PLAYPORD 5 18 일 전
10799 [과학] 딥러닝 시리즈 ) GAN의 원리가 몰까요 57 공정한비교 6 18 일 전