딥러닝:개요: 두 판 사이의 차이
(→전망) |
편집 요약 없음 |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{딥러닝 | {{딥러닝}} | ||
==개요== | ==개요== | ||
67번째 줄: | 67번째 줄: | ||
|} | |} | ||
=== 인공지능? === | ===인공지능?=== | ||
1950년대 '컴퓨터가 생각할 수있는가'라는 질문과 사람의 수행을 자유로하하기 위한 목적에서 나왔다. | 1950년대 '컴퓨터가 생각할 수있는가'라는 질문과 사람의 수행을 자유로하하기 위한 목적에서 나왔다. | ||
77번째 줄: | 77번째 줄: | ||
데이터와 기대되는 해답을 기입하면 규칙을 얻어낸다. 더 나은 표현을 찾는 과정을 자동화한 것이다. | 데이터와 기대되는 해답을 기입하면 규칙을 얻어낸다. 더 나은 표현을 찾는 과정을 자동화한 것이다. | ||
==== 역사 ==== | ====역사==== | ||
{| class="wikitable" | {| class="wikitable" | ||
!전망 | !전망 | ||
102번째 줄: | 102번째 줄: | ||
==딥러닝?== | ==딥러닝?== | ||
인공신경망을 이용해 만드는 인공지능 알고리즘. | 인공신경망을 이용해 만드는 인공지능 알고리즘. 머신러닝 안에 딥러닝이 포함되어 있지만, 딥러닝은 인지에 대한 문제를, 머신러닝은 정형화된 데이터에 대한 문제를 잘 해결한다. | ||
머신러닝의 한 분야로, 연속된 층에서 점진적으로 의미있는 표현을 학습한다. 층이 깊어질수록 데이터의 순도가 높게 정제되는 형태이다. | 머신러닝의 한 분야로, 연속된 층에서 점진적으로 의미있는 표현을 학습한다. 층이 깊어질수록 데이터의 순도가 높게 정제되는 형태이다. | ||
108번째 줄: | 108번째 줄: | ||
'인지'와 관련한 문제를 잘 해결한다. 정형데이터에 대해선 다른 전략에 밀리는 경향이 있음. | '인지'와 관련한 문제를 잘 해결한다. 정형데이터에 대해선 다른 전략에 밀리는 경향이 있음. | ||
=== 응용 === | ===기본 원리=== | ||
손실함수를 미분하여 그것이 작아지는 방향으로 가중치를 조절하면서 학습이 이루어진다. | |||
===응용=== | |||
글자가 있는 부분의 이미지 인식>잘라내기>텍스트인식 순으로, 2개의 딥러닝을 사용한다. | 글자가 있는 부분의 이미지 인식>잘라내기>텍스트인식 순으로, 2개의 딥러닝을 사용한다. | ||
117번째 줄: | 120번째 줄: | ||
예측시스템 : LSTM모델(알고리즘) | 예측시스템 : LSTM모델(알고리즘) | ||
== 기본용어 == | ==기본용어== | ||
=== 인공신경망 === | ===인공신경망=== | ||
뉴런의 모양을 모방해 신호를 받고 처리 후, 활성화함수를 통해 출력값을 내보낸다. | 뉴런의 모양을 모방해 신호를 받고 처리 후, 활성화함수를 통해 출력값을 내보낸다. | ||
or, and, not 연산이 기본이 된다. | or, and, not 연산이 기본이 된다. | ||
=== 다층신경망 === | ===다층신경망=== | ||
단일신경망에선 xor연산이 불가능하다. | 단일신경망에선 xor연산이 불가능하다. | ||
131번째 줄: | 134번째 줄: | ||
은닉층 하나를 추가할 때마다 계산량은 지수적으로 늘어난다. | 은닉층 하나를 추가할 때마다 계산량은 지수적으로 늘어난다. | ||
=== 손실함수 === | ===손실함수(목적함수)=== | ||
손실점수를 피드백으로, 이 값이 감소되는 방향으로 가중치 값을 점차 수정한다. | 손실점수를 피드백으로, 이 값이 감소되는 방향으로 가중치 값을 점차 수정한다. | ||
=== 역전파 알고리즘 === | ===텐서=== | ||
다차원 넘파이 배열. 숫자를 저장하기 위한 공간이다. | |||
셈플, 특징을 파악하기 위해선 2D텐서를 사용하고, 시계열을 위해선 3D텐서가 이용된다. 이미지는 4D텐서.(가로세로,색상,체널) | |||
보통 첫번째 축은 샘플 축, 두번째 축은 특성 축에 넣는다. | |||
시계열분석을 위해선 시간, 순서에 대한 것은 관습적으로 2번째 축에. | |||
영상은 5D텐서. | |||
===그래디언트 기반 최적화=== | |||
각 input에 대한 가중치는 초기에 무작위로 정해진다. 이후 피드백을 기초로 가중치가 점진적으로 수정된다. 손실함수를 통해 모든 가중치를 업데이트하여 수정하는데, 가중치값의 증감에 대한 판단은 어떻게 할까? | |||
변화율을 기반으로 한다. 어떤 변수가 아주 조금 증가할 때 예측함수의 변화율은 선형으로 근사하여 변화를 구할 수 있다. 연속적이고 매끄러운 함수에서 변화율의 반대방향으로 이동시켜주면 함수의 값을 감소시킬 수 있다. x값과 y값이 고정되어 있기 때문에 손실함수는 w,b의 함수가 된다. 손실함수의 편미분이 0이 되는 지점을 찾는 것. 그것이 목표이다. | |||
===역전파 알고리즘=== | |||
역방향으로 가중치 오차를 전파해 학습결과를 찾아나간다. 일정 오차범위 안에 들어가면 알고리즘을 종료시킨다. | 역방향으로 가중치 오차를 전파해 학습결과를 찾아나간다. 일정 오차범위 안에 들어가면 알고리즘을 종료시킨다. | ||
목표치에서 나온 오차를 줄이기 위해 가중치를 조절한다. 각 가중치들을 독립적으로 수정할 수 있어야 한다. 학습률을 임의로 설정한다. | 목표치에서 나온 오차를 줄이기 위해 가중치를 조절한다. 각 가중치들을 독립적으로 수정할 수 있어야 한다. 학습률을 임의로 설정한다. | ||
===과대적합=== | |||
훈련데이터에 너무 잘 적응하여 새로운 데이터에서 잘 수행되지 않는다. 일반적인 목표로 하는 훈련에선 어울리지 않는다. | |||
이를 피하기 위해선... 데이터를 많이 모으거나, 저장하는 정보 수에 제약을 가해야 한다.(이를 규제라 한다.) | |||
===과소적합=== | |||
아직 훈련이 부족한 상태를 의미한다. 데이터의 특성을 잘 찾지 못한 경우. 반복을 통해 해결된다. | |||
===l1규제=== | |||
<br /> | |||
===l2규제=== | |||
===드롭아웃=== | |||
훈련 중, 일부 츨력특성을 0으로 만드는 것. 노이즈를 추가해 중요하지 않은 패턴을 깨뜨리는 것이 목적. | |||
==데이터 전처리== | |||
목적은 원본데이터를 신경망에 적합하게 수정하는 일. 텍스트와 이미지의 특성처리 기법은 다르다. | |||
===벡터화=== | |||
모든 입력, 타깃은 부동소수데이터로 이루어진 텐서여야 한다. 때문에 사운드, 텍스트 등을 변환하여 텐서화 한다. | |||
===정규화=== | |||
범위가 큰 데이터들을 신경망을 주입하는 경우, 그 변동치가 입력에 따라 변하지 않게끔 평균이 0, 표준편차가 1이 되게끔 만들어준다. 균일하지 않은 데이터는 훈련을 방해한다. | |||
0이 사전에 의미있는 값이 아니라면 누락된 값을 0으로 만들면 작동에 크게 문제가 되지 않는다. 훈련되면 0은 의도적으로 무시하기도 한다. 때문에 일부러 훈련데이터에 누락값을 넣기도 한다. | |||
==특성공학== | |||
특성을 찾아 벡터화 혹은 수치화 하는 것. | |||
이미지나 텍스트 자체를 수학화 하여 표현하면 상당한 데이터를 절약할 수 있다. | |||
최근엔 신경망이 자동으로 유용한 특성을 추출하기에, 특성공학이 크게 필요하진 않다. 그러나 여전히 효율을 위해서 유용한 개념이다. 샘플이 없을 때 유용하기도 하다. | |||
<br /> | |||
==일반적인 흐름== | |||
문제정의 > 데이터셋 수집 > 성공지표 설정 > 진척사항 평가방법 결정(홀드아웃,K-1겹 차검증 등) > 데이터 준비 > 마지막층의 활성화함수 결정>손실함수선택>최적화함수설정>훈련 > 과대적함 모델 구축(과소적합과 과대적합의 경계에 위치한 모델이 이상적)>모델규제>테스트세트에서 단 한번만 실행. | |||
과대적합 모델을 만들기 위해선 층 추가, 층 크기 확대, 더 많은 에포크 훈련으로 가능하다. |
2021년 3월 26일 (금) 10:49 기준 최신판
틀:딥러닝이론 딥러닝을 위한 자료. 이론에 대해 다룬다.
개요[편집 | 원본 편집]
머신러닝 중 인공신경망 알고리즘을 사용하여 만든 것.
ANN(Artificion Neural Network). 인간의 신경망(뇌)을 모방하여 지능을 구현한 것. 가지줄기에서 신호를 받고, 세포체에서 입력받은 값을 통합하고 축색돌기를 통해 다른 뉴런으로 전달한다.
역사[편집 | 원본 편집]
년도 | 사건 |
---|---|
1956 | 인공지능이라는 용어 탄생 |
1974 | 첫번째 겨울. 낙관론이 무너지면서 찾아왔다.
1980년대 국가적 대규모 투자가 이루어지면서 겨울이 끝났다. |
1987 | 두번째 겨울. 대규모 투자의 성과가 시원찮아 찾아왔다. |
1993 | 딥러닝 기술 탄생. 두 번째 겨울을 지나던 중 학자들의 꾸준한 연구로 딥러닝이 탄생한다.
이후 층이 깊어질 때의 문제점을 해결하거나 실제 산업에서 사용하면서 다시금 붐이 불기 시작한다. |
전망[편집 | 원본 편집]
전망 | 기반 |
---|---|
희망적 전망 | 스마트스피커, 번역, 인식 등 실생활에서 접하고 있는 것들이 많다.
불량품 검출, 등에서 사용. AI네오라는 아이가 석달 수익률이 10%가 조금 안되며 골드만삭스를 제쳤다. '산타토익' 서비스. 영어학습에서 성공적으로 적용되고 있는 사례. |
부정적 전망 | 폐암진단정확도 18%, 자율자동차 사고 속출, 강아지와 머핀 사진, 베이글과 강아지, 강아지와 크로와상의 구분이 잘 되지 않는다.
사람처럼 구분하는 시기가 언제즘 올지 누구도 예측할 수 없다. 2015.6 폭스바겐 제조로봇 오작동으로 엔지니어 사망 2016.2 구글의 무인자동차는 시험주행 중 버스와 사고 2016.3 ms언어습득로봇이 인종차별적 표현을 사용하여 가동 중단 2016.7 미국 경비로봇 오작동으로 16개월 아기 공격 윤리적으로 민감한 상황에 인공지능 도입은 시기상조라는 의견. |
종합 | 오류가 나도 심각한 문제가 없으면서 단순반복작업을 대체할 수 있다.(온라인 광고 이미지 자동검수,
복잡도가 높은 시스템을 대체하면서 인간의 업무에서 보조적인 역할은 충분히 해줄 수 있다. 2012 이미지분류대회에서 이전 우승작보다 10% 가량 높은 역량을 보이며 심층합성곱 기법이 주목받기 시작 2015년에 정확도가 96.4%로 이미지분류문제는 완전히 해결된 것으로 간주하게 되었다. 특성공학이 딥러닝으로 인해 자동화되었다. CPU처리속도의 향상과, GPU의 발전으로 병렬처리능력 향상 등 하드웨어의 발전과, 인터넷의 성장으로 데이터의 대량수집이 가능하게 되었다. |
인공지능?[편집 | 원본 편집]
1950년대 '컴퓨터가 생각할 수있는가'라는 질문과 사람의 수행을 자유로하하기 위한 목적에서 나왔다.
규칙을 기반으로 데이터를 넣으면 기대되는 해답을 얻는다.
머신러닝?[편집 | 원본 편집]
연산결과에 따라 스스로 규칙을 수정하는 기능. 학습을 통해.
데이터와 기대되는 해답을 기입하면 규칙을 얻어낸다. 더 나은 표현을 찾는 과정을 자동화한 것이다.
역사[편집 | 원본 편집]
전망 | 기반 |
---|---|
1950년대 | |
결정트리
랜덤포레스트 : 결정트리에 기반한 것으로, 많은 결정트리를 사용하고 나중에 이를 합친다. 그래디언트 부스팅 머신 : 랜덤포레스트와 유사하지만, 이전 모델에서 놓친 데이터를... |
지도학습과 비지도학습[편집 | 원본 편집]
지도학습은 학습할 데이터를 지정해주는 것. 데이터에 따라 모델을 학습시키고, 학습시킨 모델로 새로운 입력에 대한 예측을 한다.
비지도학습은 타깃이 없는 데이터를 사용한다. 무작위한 데이터를 분류하여 그룹화 하거나 새로운 그룹을 만드는 것. 타깃이 없어, 훈련결과를 평가하기 어렵다.
강화학습[편집 | 원본 편집]
행동에 따라 보상과 현재상태에 대한 피드백으로 훈련한다.
Q러닝, SARSA, DQN(Deep Q Network) 등의 알고리즘이 있다.
딥러닝?[편집 | 원본 편집]
인공신경망을 이용해 만드는 인공지능 알고리즘. 머신러닝 안에 딥러닝이 포함되어 있지만, 딥러닝은 인지에 대한 문제를, 머신러닝은 정형화된 데이터에 대한 문제를 잘 해결한다.
머신러닝의 한 분야로, 연속된 층에서 점진적으로 의미있는 표현을 학습한다. 층이 깊어질수록 데이터의 순도가 높게 정제되는 형태이다.
'인지'와 관련한 문제를 잘 해결한다. 정형데이터에 대해선 다른 전략에 밀리는 경향이 있음.
기본 원리[편집 | 원본 편집]
손실함수를 미분하여 그것이 작아지는 방향으로 가중치를 조절하면서 학습이 이루어진다.
응용[편집 | 원본 편집]
글자가 있는 부분의 이미지 인식>잘라내기>텍스트인식 순으로, 2개의 딥러닝을 사용한다.
병해충 검색. 감염부위촬영>업로드>진단 및 응답
영상인식 : 분류모델
예측시스템 : LSTM모델(알고리즘)
기본용어[편집 | 원본 편집]
인공신경망[편집 | 원본 편집]
뉴런의 모양을 모방해 신호를 받고 처리 후, 활성화함수를 통해 출력값을 내보낸다.
or, and, not 연산이 기본이 된다.
다층신경망[편집 | 원본 편집]
단일신경망에선 xor연산이 불가능하다.
인공신경망에 은닉층을 사용하여 계산한다. 은닉층은 데이터의 특성을 파악하는 역할을 한다.
은닉층 하나를 추가할 때마다 계산량은 지수적으로 늘어난다.
손실함수(목적함수)[편집 | 원본 편집]
손실점수를 피드백으로, 이 값이 감소되는 방향으로 가중치 값을 점차 수정한다.
텐서[편집 | 원본 편집]
다차원 넘파이 배열. 숫자를 저장하기 위한 공간이다.
셈플, 특징을 파악하기 위해선 2D텐서를 사용하고, 시계열을 위해선 3D텐서가 이용된다. 이미지는 4D텐서.(가로세로,색상,체널)
보통 첫번째 축은 샘플 축, 두번째 축은 특성 축에 넣는다.
시계열분석을 위해선 시간, 순서에 대한 것은 관습적으로 2번째 축에.
영상은 5D텐서.
그래디언트 기반 최적화[편집 | 원본 편집]
각 input에 대한 가중치는 초기에 무작위로 정해진다. 이후 피드백을 기초로 가중치가 점진적으로 수정된다. 손실함수를 통해 모든 가중치를 업데이트하여 수정하는데, 가중치값의 증감에 대한 판단은 어떻게 할까?
변화율을 기반으로 한다. 어떤 변수가 아주 조금 증가할 때 예측함수의 변화율은 선형으로 근사하여 변화를 구할 수 있다. 연속적이고 매끄러운 함수에서 변화율의 반대방향으로 이동시켜주면 함수의 값을 감소시킬 수 있다. x값과 y값이 고정되어 있기 때문에 손실함수는 w,b의 함수가 된다. 손실함수의 편미분이 0이 되는 지점을 찾는 것. 그것이 목표이다.
역전파 알고리즘[편집 | 원본 편집]
역방향으로 가중치 오차를 전파해 학습결과를 찾아나간다. 일정 오차범위 안에 들어가면 알고리즘을 종료시킨다.
목표치에서 나온 오차를 줄이기 위해 가중치를 조절한다. 각 가중치들을 독립적으로 수정할 수 있어야 한다. 학습률을 임의로 설정한다.
과대적합[편집 | 원본 편집]
훈련데이터에 너무 잘 적응하여 새로운 데이터에서 잘 수행되지 않는다. 일반적인 목표로 하는 훈련에선 어울리지 않는다.
이를 피하기 위해선... 데이터를 많이 모으거나, 저장하는 정보 수에 제약을 가해야 한다.(이를 규제라 한다.)
과소적합[편집 | 원본 편집]
아직 훈련이 부족한 상태를 의미한다. 데이터의 특성을 잘 찾지 못한 경우. 반복을 통해 해결된다.
l1규제[편집 | 원본 편집]
l2규제[편집 | 원본 편집]
드롭아웃[편집 | 원본 편집]
훈련 중, 일부 츨력특성을 0으로 만드는 것. 노이즈를 추가해 중요하지 않은 패턴을 깨뜨리는 것이 목적.
데이터 전처리[편집 | 원본 편집]
목적은 원본데이터를 신경망에 적합하게 수정하는 일. 텍스트와 이미지의 특성처리 기법은 다르다.
벡터화[편집 | 원본 편집]
모든 입력, 타깃은 부동소수데이터로 이루어진 텐서여야 한다. 때문에 사운드, 텍스트 등을 변환하여 텐서화 한다.
정규화[편집 | 원본 편집]
범위가 큰 데이터들을 신경망을 주입하는 경우, 그 변동치가 입력에 따라 변하지 않게끔 평균이 0, 표준편차가 1이 되게끔 만들어준다. 균일하지 않은 데이터는 훈련을 방해한다.
0이 사전에 의미있는 값이 아니라면 누락된 값을 0으로 만들면 작동에 크게 문제가 되지 않는다. 훈련되면 0은 의도적으로 무시하기도 한다. 때문에 일부러 훈련데이터에 누락값을 넣기도 한다.
특성공학[편집 | 원본 편집]
특성을 찾아 벡터화 혹은 수치화 하는 것.
이미지나 텍스트 자체를 수학화 하여 표현하면 상당한 데이터를 절약할 수 있다.
최근엔 신경망이 자동으로 유용한 특성을 추출하기에, 특성공학이 크게 필요하진 않다. 그러나 여전히 효율을 위해서 유용한 개념이다. 샘플이 없을 때 유용하기도 하다.
일반적인 흐름[편집 | 원본 편집]
문제정의 > 데이터셋 수집 > 성공지표 설정 > 진척사항 평가방법 결정(홀드아웃,K-1겹 차검증 등) > 데이터 준비 > 마지막층의 활성화함수 결정>손실함수선택>최적화함수설정>훈련 > 과대적함 모델 구축(과소적합과 과대적합의 경계에 위치한 모델이 이상적)>모델규제>테스트세트에서 단 한번만 실행.
과대적합 모델을 만들기 위해선 층 추가, 층 크기 확대, 더 많은 에포크 훈련으로 가능하다.