머신러닝

기계학습machine learning이란, 기계이미 가지고 있는 데이터 집합에서 특징feature을 파악하는 방법을 익혀 새로운 데이터의 특징도 잘 파악할 수 있게 하는 것이다.

위 정의는 딱히 엄밀한 정의도 아니고, 정의가 엄밀해야할 필요도 없다. 기계는 간단히 말해서 컴퓨터, 즉 프로그래밍 코드라고 이해하면 된다. 이미 가지고 있는, 그러니까 학습에 쓰이는 데이터 집합을 트레이닝 셋training set, 훈련집합이라고 한다. 기계학습을 시험공부하는 학생에 비유하면 다음과 같다.

  • 기계: 학생
  • 트레이닝 셋: 기출문제
  • 특징: 출제 경향
  • 새로운 데이터: 실제 시험문제
  • 학습: 기출문제를 풀어봄으로써 실제 시험문제를 풀 수 있도록 하는 것

2021년 현재, 기계학습을 구현하는데 가장 많이 쓰이는 방법은 인공신경망의 은닉층을 늘리는 딥러닝deep learning, 심층학습이다. 인공신경망은 최근에 들어서 비약적으로 성능이 높아졌으며, 가장 좋은 성능을 뽐내기도 한다. 딥러닝이 만족할만한 성능을 보여주기 전까지 기계학습의 주류였던 것은 통계적 이론을 바탕으로한 모델들이었다.

머신러닝을 할 줄 아는 사람이 되려면 수학, 통계학, 프로그래밍을 할 줄 알아야한다. 이론을 이해하기 위해서 수학, 통계학 지식이 요구되고, 이를 구현하기 위해서는 코딩을 할 줄 알아야하기 때문이다. 특히나 머신러닝 이론에 대해서 깊게 공부하려면 행렬에 대한 선형대수학 지식 뿐만 아니라 측도론, 함수해석학 등이 필요하다. 또한 최근에는 기하학, 그래프이론, 미분방정식 등과 인공지능을 연계한 연구도 진행되고 있다.1

기초

검증

고전 기계학습

선형 회귀 모델

선형 분류 모델

  • [선형 분류 모델]
    • [최소 제곱법]
  • [피셔 선형 판별기 Fisher’s Linear Discriminant]
  • [네이만-피어슨 이진 분류 Neyman-Pearson Criterion for Binary Classification]
  • [베이즈 리스크 분류기 Bayes Risk Classifier]

클러스터링

강화학습

딥러닝

치트 시트: 플럭스, 파이토치, 텐서플로우에서 같은 기능을 하는 코드

이론

파이토치(파이썬)

오류

플럭스(줄리아)

주요 참고문헌

  • Christoper M. Bishop, Pattern Recognition annd Machine Learning (2006)
  • Simon Haykin, Neural Networks and Learning Machines (3rd Edition, 2009)
  • Trevor Hastie, The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd Edition, 2017)
  • 오일석, 기계 학습(MACHINE LEARNING) (2017)
  • Richard S. Sutton, Reinforcement Learning: An Introduction (2nd Edition, 2018)

  1. https://horizon.kias.re.kr/15780/ ↩︎

전체 포스트
댓글