디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 역전파에 대해서 알아보자

ㅇㅇ(114.71) 2024.03.06 23:15:20
조회 2253 추천 44 댓글 19
														

특갤에서는 역전파에 대한 이해로 오차를 뒤로 보내서 학습하는 알고리즘이라는 생각을 가지고 있는것 같다.


물론 그게 틀린말이라는 것은 아닌데 너무 막연하므로 있어서 왜 이 알고리즘이 초기에 욕을 먹었는지 간단히 소개하면서 설명해보겠다.


먼저 머신러닝이 무슨 목표로 어떻게 돌아가는지 알아보겠다.


통계학습이론에서 학습은 일반적으로 경험적 위험 최소화 (empirical risk minimization)를 통해 '위험'을 최소화 하는 방향으로 학습한다. 


여기에서 위험이라는게 도대체 뭘까?


만약 당신이 개와 고양이를 분류하고 싶다고 하자. 


좀 더 추상적으로, 개라는 데이터를 보면 0, 고양이라는 데이터를 보면 1이라고 대답하는 함수 (기계)를 만든다면 이걸 수행할 수 있다.


즉, 

a76a08ad230e69e864afd19528d527033ddde7fd4c88


이렇게 생겨먹은 함수를 만들면 당신은 개와 고양이 이미지를 분류할 수 있는게 되겠다.


그렇다면 f를 어떻게 만들까? 


이게 사실 기계학습이다. 즉, 원하는 목표에 적합한 함수 f를 어떻게 찾을거냐 <- 이게 목적이란 소리다.


LLM도 이미지AI도 모두 x집어넣어서 y가 나오는 함수를 찾는거임.


물론 이상적인 함수 f*가 있어서...


a76a08ad230e6ae864afd19528d5270372504016e69e


모든 개와 고양이 사진에 대해서 저렇게 분류할 수 있는 함수 f*를 찾을 수 있으면 좋겠지만, 


그렇게 하기 위해서는 이 세상에 존재하는 모든 개사진 X_dog와 고양이사진 X_cat이 필요하기 때문에 현실적으로 불가능하겠다 (그리고 쓸모도 별로 없을거임).


따라서 우리는 우리가 가지고 있는 데이터를 통해 f*를 근사하고 싶은거다


그래서 우리는 우리가 가지고 있는 데이터에서 계산할 수 있는 경험적 위험*을 정의해서 이러한 위험을 최대한 빗겨나가게하는 함수를 찾을거다.


우리는 따라서 다음을 손실이라고 정의하고 이로부터 위험을 정의해보자.


a76a08ad230e6be864afd19528d527036acf06ddea91


틀리면 1이고 맞으면 0이 되도록 하는 함수 L을 가지고 가지고 있는 데이터 분포에 대해 모두 손실을 계산하고, 그에 따른 평균을 내보자.


직관적으로, 이렇게하면 평균 성능을 정량화할 수 있을것이고, 이것을 최소화하면 좋은 분류기 f를 배울 수 있을 것이다.



a76a08ad230e6ce864afd19528d527035d27f63ab642


이것을 우리는 경험적 위험이라고 한다.


이렇게 하면 위험을 최소화 하는 f를 찾으면 우리가 가지고 있는 데이터 상에서 잘 동작하는 분류기를 만들 수 있다.


물론 손실함수 l을 0-1 loss를 사용하지 않고 더 좋은 성질을 가진 손실함수로 변경해서 사용하긴 하는데 일단 차치하고...


자 이제 f를 이루는 여러 파라미터들 (행렬연산이므로 행렬값들)을 잘 조절해서 경험적위험을 최소화 하는것이 우리의 목적이 되겠다.


이걸 어떻게 하는가? 무작위로 대입해서? 복잡한 모델일수록 파라미터들이 엄청나게 많아지기 때문에 이런 방법은 쓰기 어렵다.. 


간단하게 말해서 가장 낮은 곳으로 공을 굴려보내는 게임을 생각하면 된다. 


이런 파라미터를 찾는 휴리스틱은 일단 근처의 기울기를 보고 '낮은 곳'으로 공을 굴려보내는 것이다. 손실이 미분가능해야 하는 이유가 여기에 있다.

(물론 기울기를 사용하지 않는 다른 방법도 있다! 유전알고리즘이 대표적 예시)


이게 '경사하강법'이다.


이러한 경사하강법을 딥러닝 파라미터를 수정하기 위해 체인룰*을 사용해 모든 연결된 파라미터에 대해 기울기를 반대방향으로 계산하는 것을 역전파라고 한다.


a65614aa1f06b3679234254958c12a3ae31061529cdd2805eb2820ca


기울기가 음인 쪽으로 다가가다 보면 자꾸 낮은 곳으로 가지 않겠느냐는 휴리스틱이다.


물론 맞다! 볼록(convex)일때만!


저렇게 깔끔한 손실 그래프는 잘 나오지 않는다.. 실제로 손실 landscape를 보면...


a04424ad2c06782ab47e5a67ee91766dc28ff1ecd0acc5cebf13d1c059d4df210e0de329f7c2b53153ffac2b020b


이렇게 개좆같이 생겼기 때문에, 경사하강법으로 저 깊은 전역최소값에 도달한다는 보장이 없다.


 ** 따라서 경사하강법을 깊어진 신경망에 적용하려는 역전파는 본질적으로 국소최소값에 멈춰서버릴 가능성이 항상 있다. **


물론 이걸 극복하려고 여러 방법들이 개발되었다. 


최근(?) 등장한 방법으로는 기울기에 관성을 줘서 국소최소값에 멈추지 말고 전체적인 기울기 방향으로 튀어나가게끔 하는 알고리즘이 개발되었다 (ADAM).


두 번째 문제점으로는 ** 역전파가 기울기소실 (gradient vanishing) 및 기울기폭발 (gradient exploding) 을 유도할 수 있다는 점이다. **


역전파는 적당히 얕은 네트워크에서 기울기를 계산할 수 있는 아주 효율적인 방법이었지만
그것보다 깊어지면 수치적으로 계산할 수 있는 기울기가 죽어버리던지
아주 극단값을 가지는 파라미터들에 대해서 국소 기울기가 거의 0이라 가중치 업데이트가 아예 안된다던지,

또는 동일 파라미터를 자꾸 곱하게 되는 바닐라 RNN의 경우 1 이상인 기울기들이 폭발하게된다던지 이런 문제가 생긴다.


a65614aa1f06b36792342549569975740c0df0952a29b745b249465a3957cd92


즉, 초기 레이어들이 뒷쪽 레이어에 비해 학습이 현저히 느려진다는 문제가 발생한다. 


gradient clipping, batch normalization 등 해결책들이 많이 제시되었는데 일단 여기서는 활성화 함수의 교체를 좀 집중해서 보겠다.


딥러닝은 nonlinear 함수를 맵핑하기 위해 활성화 함수라는 비선형 함수를 통과시킨다.

이러한 비선형 변환이 원래 데이터공간을 이리저리 휘게하기 때문에 매우 중요한데, 초기 딥러닝은 얘를 sigmoid라는 함수를 사용했다.



24b0d768f5dc3f8650bbd58b3684746a8e0afd


부드럽게 휘는게 딱봐도 비선형이다. 문제는 얘를 미분하면 나오는 기울기 최대값이 1/4이라는 점인데,
앞서 말했듯 뒤로 전파하면서 기울기가 1/4씩 잘려나가는 상황이 발생하게 된다.


그래서 비슷하게 생겼는데 좀 더 큰 값을 가지는 함수 tanh를 사용하는데..


24b0d766ad8371e87eb1d19528d52703d49154eeb5cdeb


이번에는 가중치가 너무 큰 값을 가졌을 때 기울기가 거의 0으로 수렴하는 문제가 생겨버렸다 (물론 sigmoid에도 같은 문제는 있다).


그래서 이번에는 아예 ReLU라는 정류함수를 가져와서 사용하게 된다.



24b0d766ad8071e87eb1d19528d527031993484ad70e98


깔끔하다! 그러나 ReLU의 경우에도 문제가 있는데, 가중치가 음수면 기울기가 0이 되어버려서 더 이상 업데이트 되지 않는 죽어버린 가중치가 되어버린다는 점이다.


이 문제를 dying ReLU라고 한다. 얘를 해결하기 위해 leakyReLU, GeLU와 같은 가중치가 음수여도 0이 아닌 기울기를 가지게 되는 함수들이 개발되었다.




자동등록방지

추천 비추천

44

고정닉 16

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2863 설문 시세차익 부러워 부동산 보는 눈 배우고 싶은 스타는? 운영자 24/05/27 - -
412470 공지 레이 커즈와일 신간 6월 25일 발매 [29] 모브갤로그로 이동합니다. 24.01.24 7955 33
242613 공지 특갤 통합 공지 / 댓글 신고,문의 / 차단 해제 요청 [3115] 특갤용갤로그로 이동합니다. 23.08.06 39387 43
433260 공지 웬만하면 신문고에 문의 해주시면 차단 풀어드립니다 [1] 부패하는유전자!!!갤로그로 이동합니다. 24.03.06 2558 2
363220 공지 선형글 삭제 기준 [7] 특갤용갤로그로 이동합니다. 23.10.14 7254 24
375493 공지 필독) 유입 특붕이를 위한 AI 정보글 모음 (01/23) [40] ㅇㅇ(182.230) 23.11.11 13365 122
373402 공지 직업 비하, 조롱 글 30일 차단됩니다. [51] 특갤용갤로그로 이동합니다. 23.11.07 8951 79
385147 공지 구글의 AGI 분류 체계 [17] ㅇㅇ갤로그로 이동합니다. 23.11.22 8390 31
332612 공지 음모론 삭제 기준을 안내드립니다. [23] 특갤용갤로그로 이동합니다. 23.08.25 9162 30
259237 공지 특갤 용어 모음집 [6] 특갤용갤로그로 이동합니다. 23.08.09 22755 33
485001 AI창 왜 요즘 suno다운받고 디시 인코딩하면 영상안되냐? ㅇㅇ(116.44) 13:37 5 0
485000 일반 아이피 언급 = 밴하는게 맞음 [2] ㅇㅇ(211.192) 13:37 28 0
484999 정보/ ai로 영상의 각도를 바꿀 수 있습니다! 한가운데갤로그로 이동합니다. 13:35 35 4
484998 일반 단일 신경망이 트랜스포머 계층구조가 아니라고? ㅇㅇ(125.134) 13:29 28 0
484997 일반 59.151 조현병환자 아이피 113.59로 바꿈ㅋㅋㅋ [3] noosphere갤로그로 이동합니다. 13:29 42 2
484996 일반 GPT4o 갑지거 저능아가 됐는데 [5] ㅇㅇ갤로그로 이동합니다. 13:28 76 0
484995 일반 내가 만들 TO DO 리스트 앱에 들어갈 사진 매직ai갤로그로 이동합니다. 13:25 34 0
484994 일반 특붕이들아 사진 그대로 변환 성공했다 [3] 엠창인생막장의끝갤로그로 이동합니다. 13:21 109 3
484993 일반 특갤 떠날 때가 된 거 같다 [7] agi2024갤로그로 이동합니다. 13:18 144 2
484992 일반 레이 커즈와일 연도별 주요 예측 모음 [5] ㅇㅇ갤로그로 이동합니다. 13:17 110 2
484991 일반 나처럼 GPT 멍청하게 쓰는 사람 없을거같음 [1] SM2갤로그로 이동합니다. 13:17 57 1
484990 일반 빌게이츠가 말한거 그이상그이하도 아닌듯 [1] 파이어독갤로그로 이동합니다. 13:17 68 1
484989 일반 gpt5 내놓우라고 씹 좆 창 년 아 [1] ㅇㅇ갤로그로 이동합니다. 13:17 65 0
484988 일반 님들은 기존 다국가체제 vs 초지능 주도 세계단일정부 [2] ㅇㅇ갤로그로 이동합니다. 13:16 67 0
484987 일반 와 GPT지린다 [5] 엠창인생막장의끝갤로그로 이동합니다. 13:14 134 0
484986 일반 아니 갤 오랜만에 들어오니 정병이 득실대노 [2] noosphere갤로그로 이동합니다. 13:13 68 0
484985 일반 AI 그림 엔진은 조미료같은거임 [5] ㅇㅇ(118.33) 13:10 75 0
484984 일반 Oai 내부의 엄청난 거 같은건 없을거다 [15] ㅇㅇ갤로그로 이동합니다. 13:05 211 1
484983 일반 모델 선택 잘 되는데 [2] ㅇㅇ갤로그로 이동합니다. 13:03 75 0
484982 일반 나는 단일 신경망에 대한 견해를 인정함 [25] ㅇㅇ(125.134) 12:58 214 0
484981 일반 믿을게. [1] ㅇㅇ(112.170) 12:57 63 0
484980 일반 2년전에 나온 양산형 모델가지고 0.1초만에 구별가능ㅋㅋㅋㅋㅋ [1] ㅇㅇ(211.192) 12:56 103 2
484979 일반 핵심은 지능향상임 [2] et갤로그로 이동합니다. 12:55 55 1
484977 일반 단일 신경망 뜬지가 언젠데 ai그림 겨울 소리하고 있냐 자꾸 [3] ㅇㅇ(125.134) 12:52 127 0
484976 일반 또 그쪽갤에서 가면쓰고 침공온거야? ㅇㅇ(211.192) 12:49 61 1
484975 일반 무료에 gpt3.5, 4o 고르는거 사라짐 증거 [4] 파이어독갤로그로 이동합니다. 12:48 165 0
484974 일반 gpt4는 알트만이 쓰레기라고 인정한거잖어 ㅇㅇ(211.176) 12:47 41 0
484973 일반 아니 gpt4 시리즈에 멀그렇게 많이 바라노? [4] ㅇㅇ(59.151) 12:45 117 0
484972 일반 GPT4o와 연동된 할일 목록 앱을 개발중(to do리스트) [1] 매직ai갤로그로 이동합니다. 12:44 67 0
484971 일반 4o지금 성능 낮아짐 [2] et갤로그로 이동합니다. 12:44 83 2
484970 일반 이제 챗지피티 3.5, 4o 고르는거 사라짐? [6] 파이어독갤로그로 이동합니다. 12:39 90 0
484969 일반 ai그림은 딱 보자마자 0.1초만에 알아채지않냐 [2] ㅇㅇ(59.11) 12:39 77 0
484968 일반 gpt 4o가 거품 소리를 듣는 이유가 [3] ㅇㅇ(121.168) 12:38 189 10
484967 일반 4o는 아무말이나 해서 별루임 ㅇㅇ(121.155) 12:36 30 0
484966 일반 이제 디퓨전은 구닥다리임 [2] ㅇㅇ(125.134) 12:30 130 0
484965 일반 솔직히 ai그림 가치가 없음.. [15] ㅇㅇ(112.168) 12:25 253 2
484964 일반 wwdc에서 알트만 나옴? [2] ㅇㅇ갤로그로 이동합니다. 12:15 76 0
484963 일반 한국이 싫다는 새끼는 하수임 [7] TS망상갤로그로 이동합니다. 12:14 159 0
484962 일반 4o 덕에 새로운거 알았네 [4] ㅇㅇ(125.134) 12:07 192 0
484961 일반 지금 4o 성능 낮아진거 맞음 [2] ㅇㅇ(125.134) 12:04 128 0
484960 일반 한국은 역노화사업이 가장 필요한 국가이다. [19] 좋아해킨드갤로그로 이동합니다. 12:02 185 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2