강의 링크 : Stanford CS229: Machine Learning Course, Lecture 1 - Andrew Ng (Autumn 2018)
CS229 링크 : https://cs229.stanford.edu/
1. 강의에 앞서...
1-1. 전제조건
컴퓨터공학
수학
- 확률 및 통계
- 확률변수의 분산
- 확률변수의 기대값
- 행렬과 벡터
- 고유 벡터
- 행렬의 곱, 행렬과 벡터의 곱
- 무작위 변수
- 선형대수학
1-2. 프로그램
- MATLAB Octave 사용했었으나 변하는 추세
- Python NumPy 를 사용
Octave
- 수치 해석용 자유 컴퓨터 소프트웨어
- MATLAB 과 호환성이 높음
- 매스매티카 같은 컴퓨터 대수 체계가 아닌 과학적 계산을 위한 도구
- 간단한 테스트를 빠르게 수행할 수 있어, 오늘날에도 Octave 를 활용하여 프로토타입 제작
NumPy
- 행렬이나 대규모 다차원 배열을 쉽게 처리할 수 있도록 지원하는 파이썬의 라이브러리
- 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능을 제공
1-3. CS229 강의
CS229a
- 실무적인 내용이 중점적이며 수학 분야는 비중이 적음
CS230
- 딥러닝 알고리즘에 중점적
- CS229에서 더 많은 수학적 파생을 수행하는 곳에 적용
2. 머신러닝 (Machine Learning)
- 명시적으로 프로그래밍하지 않고도 컴퓨터에 학습 능력을 부여하는 연구 분야
- AI는 머신러닝보다 크고, 머신러닝은 딥러닝보다 큰 개념
Tom Mitchell
Machine Learning is Well-posed Learning Problem:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
=> 프로그램이 일정 수준의 작업 성능(P)을 가지고 작업(T)을 수행한다고 했을 때, 경험(E)이 증가함에 따라 작업(T)를 수행하는 성능(P)이 향상될 수 있으며, 이때 프로그램이 경험(E)으로부터 학습을 했다고 표현한다