explicit programming이란?
우리가 사용하는 앱같은 것. 우리가 어떤 것을 입력하면 그에 대해서 보여주는 것. 그렇지만 이 프로그래밍엔 한계가 존재한다.
스팸 필터: 어떤 메일이 스팸인지, 아닌지 구분하는 것. 규칙이 너무 많아서 개발자들이 이것은 스팸메일, 이건 일반메일! 이렇게 프로그래밍 하기가 힘들다.
자율 주행: 어떤 로직으로 프로그래밍 하면 가능은 하겠다만, 너~~무 많은 규칙때문에 힘들다.
기계학습(machine learning)
1959년 Arthur Samuel이 생각해낸 방법. 어떠한 자료나 어떠한 현상에서 자동적으로 배우면 어떨까?
머신 러닝에는 Supervised/Unsupervised learning (지도학습/비지도학습) 두 종류가 있다. 지도학습은 정해져있는 데이터들을 주고 학습하도록 하는 것을 말한다. 비지도학습은 데이터를 보고 스스로 학습하는 것을 말한다.
지도학습에서 이미지 라벨링, 스팸메일 필터, 시험점수 예측 등을 할 수 있다. 데이터를 통해서 학습할 수 있기 때문에!
Training data set
X값이 있고 그에 따른 Y값이 존재할 때, 그러한 데이터들이 모인 것을 데이터 셋이라고 한다. 그러한 데이터로 학습을 한 머신러닝 모델이 생겨난다. 그런 모델에 우리가 X값을 임의로 주면 학습한 데이터를 토대로 Y값을 알려줄 수 있다.
알파고
수많은 데이터로 학습을 했음. 상대가 바둑을 어떤 자리에 두면 학습한 내용을 토대로 바둑을 둘 곳을 찾아 그 자리에 둠.
지도학습의 타입
regression(회귀): 시험 점수 예측과 같은 것
binary classification: pass or non-pass와 같이 두 가지로 분류하는 것
multi-label classification: 성적을 A, B, C, D, F와 같이 여러가지로 분류하는 것
참고 강의: https://inf.run/Dixc