1_머신러닝_시작하기 - WWTKT/ML GitHub Wiki
CHAPTER 1
머신러닝 시작하기
tony@kakaobank
1.1 머신러닝 소개
데이터를 이용해서 명시적으로 정의되지 않은 패턴을
컴퓨터로 학습하여 결과를 만들어내는 학문 분야
- 데이터, 패턴인식, 컴퓨터
직접적으로 프로그래밍하지 않아도 컴퓨터가 스스로 학습할 수 있는 능력을 주는 학문 분야
1959 - Arthur Lee Samuel
데이터
- 머신러닝은 항상 데이터를 기반
- 여러 규칙을 단순 조합하는 '고전적인 인공지능 시스템'과는 다름
- 사용자가 어떻게 동작할지 완전히 정의하는 컴퓨터 알고리즘과도 다름
- 머신러닝은 알고리즘이 아닌 데이터 학습을 통해 실행 동작이 바뀜
- 데이터를 기반으로 한다는 점에서 통계학과 가깝다고 볼수 있음
패턴인식
- 머신러닝은 통계학을 비롯해 딥러닝을 이용하여 데이터의 패턴을 유추하는 방법이 주축
- 사용자가 일일이 정해놓은 패턴으로 데이터를 분석하는 것이 아니라
데이터를 보고 패턴을 추리는 것이 머신러닝의 핵심
- 통계학이야 말로 데이터에서 패턴을 찾아내는 학문이므로 여전히 머신러닝의 가장 기본적이며 핵심적인 개념
딥러닝도 통계학에서 사용하는 전통적인 방법과는 다른 방법을 사용하지만 '패턴을 찾아내려고 학습한다'는 점에서 그 목표는 동일
컴퓨터를 이용한 계산
- 머신러닝은 데이터를 처리하고 패턴을 학습하고 계산하는데 컴퓨터를 사용
- 응용수학이나 통계학과 달리 머신러닝은 단순히 수학적인 모델의 구축이나 증명에만 그치는 것이 아니라 실제 데이터에 대해 계산해서 결과를 만들어낸다는 점에서 머신러닝은 전산학의 한 분야
1.1 머신러닝을 이해하는 데 필요한 배경지식
1.2.1 수학 (선형대수, 미분, 통계, 확률)
- 행렬: 행렬 연산(특히 행렬곱)과 역행렬
선형대수, 특히 행렬 분해
- 미분: 최솟값/최댓갑 개념과 1차 미분함수
미적분학과 최적화
- 통계학: 분포, 정상분포, 가우스분포, 상관관계, 회귀
- 확률: 확률의 정의, 조건부 확률
1.2.2 프로그래밍
- 파이썬: 파이썬 문법, 함수 사용, 파일 사용
1.3 머신러닝 발전사
1.3.1 머신러닝의 역사와 현재 트랜드
고전적 인공지능 시대
- 튜링 테스트
앨런 튜링
- 컴퓨터의 가능성에 대해 다양한 논의
신경망 시대
- 퍼셉트론
perceptron
기초적인 신경망 - 구할 수 있는 데이터가 굉장히 한정적이라 신경망 성능이 생각보다 신통치 않았음
- 인공지능의 겨울
통계학적 머신러닝 시대
- 데이터에 훨씬 더 중요한 비중
머신러닝
이라는 용어가 등장- 차후에 딥러닝이 나온 이후 이런 통계학에 중심을 둔 기법들을 통계학적 머신러닝이라고 부름
빅데이터 시대
- 데이터, 대용량 저장장치, 분산 처리 기술과 결합하여 엄청난 시너지
빅데이터
라는 용어가 2010년대부터 유행
딥러닝 시대
- 연산능력이 증가하면서 머신러닝 연구자들은 예전 신경망 이론에 다시 관심을 가짐
- 기존의 신경망보다 훨씬 더 복잡한, 즉 깊이가 깊은 신경망을 사용
현재 트랜드
- 성격이 다른 데이터를 연관시켜서 데이터를 더 효율적으로 사용하는 딥러닝 구조 개발
- 통계학적 머신러닝의 기법을 조합해 데이터를 더 효율적으로 사용하는 딥러닝(원샷, 제로샷 러닝) 기술의 발전
- 머신러닝, 특히 딥러닝을 거대 규모로 빠르게 연산할 수 있는 시스템(하드웨어와 소프트웨어 모두)의 발전
- 딥러닝의 더 효율적인 학습을 위한 기술(드롭아웃, 비동기 SGD 등)의 발전
- 데이터에 대한 더 큰 관심으로 인해 양적, 질적으로 크게 성장한 데이터 수집 기술의 발전
1.3.2 머신러닝의 3가지 관점
위치 | 추구하고자 하는 방향 | 시작점 | 결과 | 기법 |
---|---|---|---|---|
위 | 통찰력, 통찰력 있는 모델 | 데이터에 대한 지식 | 데이터에 대한 믿음prior |
베이지언 기법 |
오른쪽 | 데이터 적합성, 데이터 자체에 얼마나 가까운 모델을 만들수 있는지 | 많은 데이터 | 데이터에 잘 맞는 모델 | 딥러닝, 랜덤 포레스트 |
왼쪽 | 이론적 엄정성, 기법을 분석하기 쉬운지, 계산이 쉽게 가능한지 | 증명이 가능한 수학 이론 | 잘 정의되고 보장된 성능 | 스펙트럴 러닝, 서프트 벡터 머신SVM , 블록 최적화 |
1.4 머신러닝의 분류
1.4.1 지도학습, 비지도학습, 강화학습
- 지도학습: 주어진 데이터와 레이블(정답)을 이용해서 미지의 상태나 값을 예측하는 학습 방법 ex) 예전의 주식 시장 변화를 보고 내일의 주식 시장 변화 예측하기
- 비지도학습: 데이터 자체에서 유요한 패턴을 찾아내는 학습 방법 ex) 군집화, 이상검출, 데이터 분포 추측
- 강화학습: 기계(에이전트)가 환경과 상호작용(선택과 피드백의 반복)을 통해 장기적으로 얻는 이득을 최대화하도록 하는 학습 방법
exploitation
,exploration