습관을 애정한다

케라스 창시자에게 배우는 딥러닝 1장 요약

by 습관중독

케라스 창시자에게 배우는 딥러닝 1장 요약
1장. 딥러닝이란 무엇인가?
1.1 인공지능과 머신러닝, 딥러닝
1.2 딥러닝 이전: 머신러닝의 간략한 역사
1.3 왜 딥러닝일까? 왜 지금일까?
<핵심>
- 핵심개념에 대한 고수준 정의
- 머신러닝 발전과정
- 딥러닝이 인기를 끈 주요요인과 미래의 가능성

1.1 인공지능과 머신러닝, 딥러닝
개념: 인공지능 > 머신러닝 > 딥러닝
1.1.1. 인공지능
1. AI의 정의: 사람 수행 지능작업을 자동화하기 위한 연구활동. 머신러닝+딥러닝+학습 없는 방법
2. 패러다임 시프트
1) 과거=symbolic AI: 규칙 많이 만들면 AI 탄생할 것 / 1950~1980년대 / 결과물=전문가 시스템(expert system) / 유용성: 체스게임처럼 잘 정의된 논리적 문제 해결 적합 but 이미지 분류, 음성인식, 언어번역 같은 불분명한 문제 해결 규칙 어려운 분야 부적합
2) 현재: symbolic AI 대체 새방법론=머신러닝

1.1.2. 머신러닝
1. 새로운 플밍 패러다임(1990~)
1) 전통적 플밍: f(규칙+데이터) = 해답
2) 머신러닝: f(데이터+해답) = 규칙
- 명시적 프그래밍x. 훈련o(training)
- 많은 데이터 주면: 통계구조 찾아 자동화 규칙 생성
2. 수리통계와 다른 점 = 대량의 복잡한 데이터셋 사용 때문
1) 베이지안 분석 같은 전통적 통계분석 방법: 적용 힘듬
2) 수학적 이론 부족 -> 엔지니어링 지향적 (my 데이터 전처리?)

1.1.3 데이터에서 표현 학습하기
1. 머신러닝 알고리즘이 하는 일
샘플과 기대값이 주어졌을 때 데이터 처리 작업 위한 실행 규칙을 찾는 것 => f(데이터+해답) = 규칙
2. 머신러닝 위한 요건
1) 입력 데이터 포인트: 데이터 자체 (대화 녹음 사운드 파일(음성인식), 사진(이미지 태깅))
2) 기대 출력: 녹취록(음성인식), 강아지,고양이 등의 태그(이미지)
3) 알고리즘 성능 측정 방법: 손실함수로 수행. 알고리즘의 현재 출력과 기대 출력 간 차이 결정 위해 필요. 측정값은 알고리즘 작동 방식 교정 위한 신호로 다시 피드백. 이 수정 단계=학습(learning)
3. 머신러닝과 딥러닝의 핵심 문제 = 의미 있는 데이터로의 변환
- 입력 데이터를 기반으로 기대 출력에 가깝게 만드는 유용한 표현(representation)을 학습하는 것
- 표현: 데이터를 인코딩하거나 묘사 위해 데이터를 바라보는 다른 방법
- 데이터 변환: 분류작업 해결에 용이해짐. ex) 이미지 분류: RGV포맷 vs. HSV 포맷. 해결문제 상황에 따라 더 유용한 표현 다름.
=> 알고리즘: 주어진 작업을 위해 데이터를 더 유용한 표현으로 바꾸는 데이터 변환을 자동으로 찾는다. 가능성 있는 공간을 사전에 정의하고 피드백 신호 도움을 받아 입력 데이터에 대한 유용한 변환을 찾는 것 => 이것이 학습

1.1.4 딥러닝에서 '딥'의 의미
1. 딥러닝 vs. 얕은 학습
1) 딥: 데이터로부터 모델링에 얼마나 많은 층 사용했는지가 모델의 깊이 = 층기반 표현 학습 or 계층적 표현 학습
2) 얕은 학습(shallow learning): 1-2개의 데이터 표현층 학습 방식
2. 딥러닝 모델
1) 신경망 모델: 뇌처럼 작동x. 뇌를 모방하여 만듬x. 데이터로부터 표현을 학습하는 수학 모델일 뿐o
2) 심층 신경망: 정보가 연속된 필터를 통과하면서 순도높게(즉 어떤 작업에 대해서 유용하게) 정제되는 다단계 정보 추출 작업 = 데이터 표현을 학습하기 위한 다단계 처리 방식

1.1.5 그림 3개로 딥러닝의 작동원리 이해하기
1. 정리
1) 머신러닝: 많은 입력과 타깃의 샘플을 관찰하면서 입력을 타깃에 매핑하는 것
2) 심층 신경망: 입력-타깃 매핑을 간단한 데이터 변환기(층)에 많이 연결하여 수행
3) 학습: 샘플에 노출되어 데이터 변환에 대한 학습이 이루어짐
2. 학습 과정
1) 층의 가중치(weight): 층에서 입력 데이터 처리과정의 상세 내용
2) 어떤 층에서 일하는 변환의 의미: 그 층의 가중치를 parameter로 가지는 함수로 표현.
3) 학습: 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것
4) 손실함수=피드백: 신경망 출력 제어 위해서는 출력이 기대하는 것보다 얼마나 벗어났는지 측정해야 => my: 이것이 머신러닝 제3요건인 알고리즘 성능 측정 방법.
- 역전파 알고리즘: 현재 샘플의 손실점수가 감수되는 방향으로 가중치값을 조금씩 수정하는 것.

1.1.6. 지금까지 딥러닝의 성과=x
1.1.7. 단기간의 과대 선전을 믿지 말자 = AI winter
1st: 1960년대 symbolic AI에 대한 실망
2nd: 1980년대 expert system에 대한 실망
3rd: NOW? who knows.

1.1.8. AI에 대한 전망=x

1.2 딥러닝 이전: 머신러닝의 간략한 역사
핵심=1) 딥러닝은 머신러닝의 넓은 범주 중 하나
2) 딥러닝의 기원

1.2.1. 확률적 모델링 = 통계학 이론을 데이터 분석에 응용한 것
1. 나이브 베이즈 알고리즘
1) 가정: 입력 데이터의 특성이 모두 독립적이라 가정. 베이즈 정리 적용.
2) 로지스틱 회귀=logreg: 현대 머신러닝의 기초. 이름과 달리 회귀 알고리즘x. 분류 알고리즘o.

1.2.2. 초창기 신경망
- 얀 르쿤: CNN+역전파=손글씨 숫자 이미지 분류에 적용

1.2.3. 커널방법
1. 커널방법=분류 알고리즘의 한 종류. ex) SVM
2. SVM
1) 개념: 분류 문제 해결 위해 2개의 다른 범주에 속한 데이터 포인트 그룹 사이에 좋은 결정 경계(decision boundary) 찾기
2) 과정
a. 1단계: 결정경계가 하나의 초평면hyperplane으로 표현될 수 있는 새로운 고차원 표현으로 데이터 매핑. 2차원 데이터의 경우 초평면은 직선임.
b. 2단계: 초평면과 각 클래스의 가장 가까운 데이터 포인트 사이의 거리 최대되는 최선의 결정경계 찾는다 = 마진 최대화=maximizing the margin
3) 단점: 대용량 데이터셋에 확정 어려움, 이미지 분류 등 지각 관련 문제에 나쁜 성능, 얕은 학습 방법
3. 커널기법
1) 등장배경: SVM은 컴퓨터로 구현하기 어려운 경우 많음
2) 핵심
- 좋은 결정 초평면 구하기 위한 새로운 공간에 대응하는 데이터 포인트 좌표 구할 필요 없음
- 새로운 공간에서 두 데이터 포인트 사이의 거리 계산할 수만 있으면 됨 = 커널 함수

1.2.4. 결정 트리, 랜덤포레스트, 그래디언트 부스팅 머신
1. 결정 트리: 플로차트 같은 구조. 입력 데이터 포인트 분류 OR 입력에 대한 출력값 예측 / 시각화 및 이해에 장점.
2. 랜덤포레스트: 결정 트리 학습에 기초. 안정적+실전유용. 서로 다른 결정 트리 많이 만들고 출력을 앙상블. 얕은 학습 해당 작업에서 거의 항상 두번째로 가장 좋은 알고리즘. 캐글에서 가장 선호.
3. 그래디언트 부스팅 머신: 결정 트리 앙상블. 이전 모델에서 놓친 데이터 포인트를 보완하는 새로운 모델을 반복적으로 훈련함으로써 머신러닝 모델을 향상하는 방법인 그래디언트 부스팅 방법 사용. 대부분의 경우 랜덤포레스트 능가. 지각 관련되지 않은 데이터 다루기 위한 최고 성능. 캐글서 가장 많이 사용기법.

1.2.5. 다시 신경망으로
이미지 등 컴퓨터 비전=SVM을 CNN(ConvNet)이 완전히 대체

1.2.6. 딥러닝의 특징
1. 특성공학 feature engineering: 머신러닝 방법들로 처리용이하게 사람이 초기 입력 데이터를 여러 방식으로 변환해야. 즉 데이터의 좋은 표현을 수동으로 만들어야.
2. 딥러닝: 특성공학을 완전히 자동화. 특성을 직접 찾는 대신 한번에 모든 특성 학습 가능.
3. 딥러닝 특징 2가지 = 과거 머신러닝보다 딥러닝이 훨씬 성공 비결
1) 층을 거치면서 점진적으로 더 복잡한 표현 생성
2) 이런 점진적인 중간 표현이 모든 층이 공동으로 학습한다

1.2.7. 머신러닝의 최근 동향
1. 최신 동향 = 캐글
2. 2016+2017: 주류 2가지
1) 그래디언트 부스팅 머신=구조적 데이터 / 사용 라이브러리 = 항상 XGBoost.
2) 딥러닝=이미지 분류 등 지각 관련 문제 / 사용 라이브러리 = 케라스

1.3 왜 딥러닝일까? 왜 지금일까?
머신러닝의 진보 3가지 이유
1. 하드웨어
2. 데이터셋과 벤치마크
3. 알고리즘 향상

블로그의 정보

습관을 애정한다

습관중독

활동하기