신경망 (Neural Networks) < 인공지능입문 > 강의 허민오 Bioitelligece Laboratory School of Computer Sciece ad Egieerig Seoul Natioal Uiversity
목차 신경망이란? 퍼셉트론 - 퍼셉트론의구조와학습목표 - 퍼셉트론의활성화함수 - 퍼셉트론의학습 : 델타규칙신경망의학습 - 다층퍼셉트론 - 다층퍼셉트론의학습 : 오류역전파알고리듬활용사례 본자료는 < 기계학습입문 > (2017) 강의자료를바탕으로재작성된자료입니다. 더공부하고싶은경우, 위강좌홈페이지를참고바랍니다. * 참고서 : 장교수의딥러닝, 홍릉과학출판사, 2017. 2
Playgroud (playgroud.tesorflow.org) 3
4
오늘의퀴즈링크 : (1 주차 ) https://goo.gl/forms/ttr1dcuzheytbs8g2 ( 종료 )
신경망이란? 신경망이란? à 뇌의신경세포망에서의정보처리기작을모사한머신러닝모델 생물신경세포 인공신경세포 인공신경세포 (Artificial Neuro) 6
인공신경망과생물학적신경망 컴퓨터와뇌의비교 정확한소자 ( 논리소자 ) 소자속도매우빠름 (10 9 초 ) 디지털회로망 ( 전자회로망 ) 주소기반메모리 ( 국지적 / 독립적 ) 논리 / 산술적연산 ( 조작적 ) 중앙집중식순차처리 프로그래밍기반명시적지식 부정확한소자 (10 11 개뉴런 ) 소자속도느림 (10-3 초 ) 아날로그회로망 (10 14 개연결선 ) 내용기반메모리 ( 전역적 / 관계적 ) 패턴 / 연상기반연산 ( 연관적 ) 분산적병렬처리 학습 ( 경험 / 데이터 ) 기반암묵적지식 7
다양한인공신경망 퍼셉트론 (Perceptro): 인공뉴런 딥큐넷 (Deep Q-Net) 다층퍼셉트론 (MLP) 컨볼루션신경망 (Covolutioal Neural Network) 뉴럴튜링머신 (Neural Turig Machie) 오토인코더 (Auto-ecoder) 순환신경망 (Recurret Neural Network) 장단기메모리망 (Log short-term memory) 딥빌리프넷 (Deep Belief Net) 메모리망 (Memory Network) 생성대립넷 (Geerative Adversarial Network) 딥잔차넷 (Deep Residual Net) 8
퍼셉트론 (Perceptro) 퍼셉트론 생물학적신경세포의작동방식을수학적으로모델링한인공뉴런 뇌의구조를모사한정보처리방식 1958년 Roseblatt가학습이가능함을증명 인공신경세포 (Artificial Neuro) 9
퍼셉트론 퍼셉트론 (Perceptro) 목표 : 주어진데이터를기준으로두개의클래스로분류하는경계면찾기 인접한두뉴런의연결부분인시냅스에서학습이일어남 출력노드의값 = + = = 10
퍼셉트론 (Perceptro) 활성화함수 (Activatio fuctio) = 경계면의부근의모양을결정 선형활성화함수 (Liear Activatio fuctio) = 시그모이드함수 (sigmoid fuctio) = () = 1 1 + 11
퍼셉트론 (Perceptro) 활성화함수 (Activatio fuctio) 경계면의부근의모양을결정 = 하이퍼볼릭탄젠트함수 (tah fuctio) = 1 1 + ReLU (Rectified Liear fuctio) = max (0, ) 12
여러퍼셉트론들 단순퍼셉트론 (Simple Perceptro) 활성화함수로임계논리활성화함수를가지는퍼셉트론 임계논리활성화함수 (threshold logic uit) 입력의총합이임계치를넘으면 +1, 그렇지않으면 -1을출력 1958년에 Roseblatt이학습방법을제안 선형퍼셉트론 활성화함수로선형활성화함수를가지는퍼셉트론 선형분리가가능한패턴분류문제만해결가능 1960년에 Widrow와 Hoff가학습방법을제안 : 델타규칙 (Δ-rule) 13
여러퍼셉트론들 시그모이드뉴런 선형퍼셉트론은선형분리가가능한패턴분류문제만해결가능복잡한문제를풀기위해서는비선형결정경계를생성해야함미분이가능하려면 = 1 Σ = = ( ) = 1 1 + 연속함수일필요가있음 시그모이드 (sigmoid) 함수 : 비선형, 미분가능한연속함수 Classic Perceptio 1 Sigmoid fuctio is Differetiable = ()(1 ) 0.8 0.6 0.4 0.2-6 -4-2 2 4 6 14
델타규칙 델타규칙에의한학습알고리듬 학습데이터 N 개 가중치벡터 w 를갖는선형유닛의계산 학습데이터집합에대한오차 E =, () () = () ; = () = = 1 2 () () 15
델타규칙 선형퍼셉트론의구조 = {, } = 1 2 () () () () = ; = 16
델타규칙 델타규칙에의한학습알고리듬 (cot.) 오차를줄여주는방향으로시냅스가중치를교정 오차를가중치 에대해서미분 + = = () () = () 1 2 () () () = 1 2 2 () () () = () () () 17
델타규칙 델타규칙에의한학습알고리듬 (cot.) i 번째가중치의학습식 (0,1) 은학습률 (learig rate) + () () () 18
델타규칙 선형퍼셉트론학습을위한델타규칙 선형퍼셉트론학습 ( 학습예 _ 집합, ) 각학습예는 <, > 꼴의쌍을이루며 는입력값벡터, 는목표출력값이다. 는학습률이다 (e.g.,.05). 1) 각 를크기가작고랜덤한값으로초기화 2) 종료조건이만족될때까지아래를반복 A. 각 를 0으로초기화 B. 학습예 _ 집합 의각 <, > 에대해아래를실행 i. 선형유닛에 를입력하고출력 를계산 ii. 각선형유닛가중치 에대해 + 를계산 iii. 각선형유닛가중치 에대해 + 를실행 19
델타규칙 시그모이드뉴런신경망 가중치입력계산시비선형의시그모이드전이함수를거쳐서출력함 (Aizerma, Braverma, & Rozooer, 1964) = = = = 1 1 + exp [, + ] 의입력구간 s에대한출력을 0, 1 의구간으로변환해줌 미분가능 = ()(1 ) 20
델타규칙 시그모이드뉴런의델타규칙 시그모이드유닛의계산 () () = () = ( () ; ) = 오차의가중치에대한미분 1 1 + exp () = () () = () 1 2 () () () () () = 1 2 2 () () () 1 () () = () () () 1 () () 21
델타규칙 시그모이드뉴런의델타규칙 (cot.) i번째가중치의학습식 (0,1) 은학습률 (learig rate) 시그모이드를미분한항 ( ) 가추가된것외에동일함 + () () () (1 () ) () 22
다층퍼셉트론 다층뉴런의필요성 복잡한패턴분류를위해서는입출력간의복잡한변환구조가필요 단일뉴런으로는선형분리가가능한결정경계선만을생성가능 사용하는뉴런의수를늘리고층을추가하여복잡한구조의의사결정경계 (decisio boudary) 를생성할수있음 다층퍼셉트론 (Multilayer Perceptro, MLP) 여러개의퍼셉트론뉴런을여러층으로쌓은다층신경망구조각층안에서는뉴런간연결이없으며인접한두층의뉴런간에는완전연결됨층별활성화값 j: 시냅스후뉴런, i: 시냅스전뉴런 = = = 1 1 + exp 23
다층퍼셉트론 다수 / 다층뉴런의필요성 24
다층퍼셉트론 다층퍼셉트론신경망 (MLP) 25
다층퍼셉트론 다층퍼셉트론의혁신 시그모이드뉴런의사용 비선형모델로확장가능 연속함수이므로미분가능 은닉뉴런층의학습을가능하게하는오류역전파알고리듬의개발로이어짐 은닉뉴런층추가 은닉층학습방법도입 26
다층퍼셉트론 다층신경망모델 입력층, 은닉층, 출력층으로구성 각층의뉴런개수가각각 I, H, K라하면 I-H-K 다층퍼셉트론이라부름입력유닛, 은닉유닛, 출력유닛을가리키는기호로 i, h, k를각각사용 입력뉴런 i의출력 는모든은닉뉴런 h와의연결가중치 를통해서전달됨 은닉뉴런 h의출력은모든출력뉴런 k의입력으로연결선 를통해서전달됨매개변수 : 입력층과은닉층을연결하는가중치벡터 : 은닉층과출력층을연결하는가중치벡터 27
다층퍼셉트론 다층신경망모델 출력값벡터 f =,,, = (, ) 출력값의계산과정 은닉뉴런의출력값 의계산 출력뉴런의값 의계산 = () () = = 1 = 1 + exp = 1 = 1 + exp =, = () () 28
오류역전파알고리듬 출력뉴런 j 에대한가중치벡터변경 + = 1 () : 1 층에있는뉴런들의활성화값 () : 층의 j번째뉴런의총입력값 () () () () () = = () = () = ( () ) () () = () () () = () () (1 ) 29
오류역전파알고리듬 단순퍼셉트론에서다층퍼셉트론으로 30
오류역전파알고리듬 출력뉴런 j 에대한가중치벡터변경 (cot.) 번째학습예에대한오차함수 출력층 층에있는 j 번째뉴런의델타값 () 해당뉴런의입력총합에대한에러변화율의음수값 교정할오류를의미 = 1 2 () () 31
오류역전파알고리듬 델타값의계산 연쇄규칙을사용 목표출력치가주어지는출력뉴런에대한델타값 () = () () () = () () 1 () 출력층 층에있는 j 번째뉴런에연결된시냅스의경사도 () = () = () = () () () () () () () (1 () ) () = 1 () () () () () () = () () 32
오류역전파알고리듬 델타값의계산 (cot.) 은닉층에서는목표출력치가없으므로델타값을추정해야함 은닉층 층에있는 j번째뉴런의가중치수정 () () = () () = + 1 층의델타값 () 을이용한 () 의계산 () () () = () () () () () () () () () = (1 ) () () = (1 ) () () () = () 33
오류역전파알고리듬 델타값의계산 (cot.) 층의 j 번째뉴런에연결된시냅스가중치벡터의일반변경식 () () + () () = () = () () () 1 () () for () = () 1 () () () for 34
오류역전파알고리듬 상위층의델타값을이용한하위층뉴런의델타값계산 = + 35
오류역전파알고리듬 오류역전파알고리듬의한계 학습속도가느림 극복방법 : 모멘텀항을추가하여학습을가속 (Yi, 1996)(Bishop, 2006) = = + 1, 0 < < 1 36
오류역전파알고리듬 오류역전파 (error back-propagatio) 학습알고리듬 Give: 학습데이터 = (), () Fid: 다층퍼셉트론연결가중치벡터 = Procedure: 다층퍼셉트론학습, 학습률, 다층퍼셉트론구조 (, ) () (), 1. 연결가중치 를임의의작은값으로초기화한다. 2. 입력데이터 () 하나를입력층에넣고활성화값을전방으로전달하면서출력값 (),, = 1,, 를계산한다. 3. 각출력뉴런 k 에대한오차 = 1 를계산한다 ( = (), ). 4. 출력뉴런 k 에대한연결가중치값의증분 = = 을계산한다. 5. 은닉뉴런 h에대한오차 = 1 를계산한다. 6. 은닉뉴런 h 에대한연결가중치의증분 = = 를계산한다. 7. 가중치의값을모두수정한다. + for () 37
활용사례 다층신경망의활용 다양한감독학습문제에적용가능 입력과출력이다차원인경우 입력과출력이이산값 / 연속값인경우 MNIST 데이터셋에적용 (LeCu, Cortes, & Burges, 1998) 입력 : 숫자이미지픽셀값의벡터 출력 : 0부터 9까지의숫자클래스값 스팸메일여과기만들기 (Clark, Kopriska, & Poo, 2003) 입력 : 메일에나오는단어들에대한빈도수벡터 출력 : 스팸인지아닌지를판별하는두개의클래스값 2017, 장교수의딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 38
활용 사례 신경망의 응용 사례 2017, 장교수의 딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 39
활용사례 다층신경망의구체적인활용사례 : 얼굴방향인식 학습데이터 : 20 명의다른사람을촬영한 624 장의흑백이미지 (Mitchell, 1997) 가로 120 픽셀, 세로 128 픽셀의이미지를가로 30 픽셀, 세로 32 픽셀로가공 신경망의입력층뉴런수를줄여계산부담을더는효과 각픽셀은 0 에서 255 사이의밝기를가짐 사진속얼굴이바라보는방향은상, 좌, 우, 정면 4 가지로분류 2017, 장교수의딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 40
활용사례 다층신경망의구체적인활용사례 : 얼굴방향인식 (cot.) 실험에사용한모델 입력층뉴런 : 가공이미지의픽셀수와같은 960 개 은닉층뉴런 : 3 개 출력층뉴런 : 4 개 학습방법 각뉴런이얼굴이바라보는방향중하나에대응됨 가장큰값을보이는뉴런의방향이이미지속얼굴방향과같도록학습을진행 신경망의가중치는크기가작은랜덤값으로초기화 학습가속을위해경사도계산시모멘텀항추가 학습을 50 번반복할때마다검토용데이터 (validatio set) 에대한성능을측정, 가장높은인식정확도를보이는신경망을얻음 2017, 장교수의딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 41
활용사례 얼굴방향인식문제를학습한신경망과학습된가중치의분포 2017, 장교수의딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 42
활용사례 다층신경망의구체적인활용사례 : 얼굴방향인식 (cot.) 은닉층의경우뉴런개수를자유롭게조절하여모델성능에변화를줄수있음 Mitchell의실험결과 은닉층뉴런이 3개인경우 학습시간 : 5분 테스트데이터에대한방향인식정확도 : 90% 은닉층뉴런이 30 개인경우 학습시간 : 60분 테스트데이터에대한방향인식정확도 : 91.5% 2017, 장교수의딥러닝, SNU CSE Bioitelligece Lab., http://bi.su.ac.kr 43
요약 퍼셉트론 생물학적신경세포의작동방식을수학적으로모델링한인공뉴런 델타규칙 선형퍼셉트론의학습을위해사용 다층퍼셉트론 비선형모델로확장됨, 미분가능 : 오류역전파알고리듬의개발로연결 오류역전파알고리듬 상위층뉴런의델타값을이용하여하위층뉴런의델타값을계산 활용사례 얼굴인식, 음성인식등복잡한패턴인식에응용됨 44