머신 러닝: 인공지능을 구현하는 방법 중 하나, 유용한 함수를 사용하여 학습하는 것
ex) 암 진단, 자율주행자동차를 운행하는 데 있어서 안전도를 검증
✒ 딥러닝도 머신러닝의 일종, 머신러닝의 하위 알고리즘
-> AI 비서, 오케이 구글 등의 데이터들을 모델링하는데 사용
1. 인공지능: Artificail Intelligence
사람의 인지하고 의사결정을 하는 일련의 인지능력들을 컴퓨터 알고리즘으로 모사해서 현실 문제 해결에 활용하는 기술들의 총 집합
2. 머신러닝: Machine Learning
인공지능 구현의 한 가지 방법, 데이터를 이용해서 유용한 함수를 학습하는 방법
3. 딥러닝: Deep Learning
머신러닝의 하위 분야, 인간의시각능력. 언어적 능력, 음성, 오감 등과 관련된 인지능력들을 모델링 하는데 있어 좋은 성능을 보임
🔷 사람의 인지능력, 지적능력을 모사하는데 있어 좋은 성능을 보이고 이러한 것들이 현실 문제를 해결하는데 있어서 중요한 역할을 함
-> 딥러닝 외에도 linear regreesion, decision tree 등등이 머신러닝 방법 중 하나
✒️ 완벽한 머신러닝 알고리즘은 없다!
우리는 빅데이터 시대에 살고 있다
-> 머신러닝 = 데이터를 활용한 방식이기에 빅데이터 시대에 머신러닝이 각광을 받는 것들은 당연지사!
ex) 항공산업, 석유 추출 및 생산, 마트 및 편의점 등에서의 리테일링 서비스, 운송 서비스 등에 적용
많은 양의 데이터를 효율적이고 빠른 계산이 가능한 장비의 등장
: GPU computing 기술 -> 연산 장비 존재
-> 분산해서 빠르게 쉬운 계산들을 처리
✒️ 우리가 쓰는 일반적인 환경은 CPU
함수를 학습하는 계산이 가능하다는 것을 알게됨
❓ 그렇게 해서 만들어진 함수들이 유용한가?
❓ 실질적인 의미를 가지는가?
-> 구글, 넷플릭스, 페이스북 등의 회사들은 함수를 유용하게 사용하혀 가치를 만드는가?
-> YES
🎈2) 데이터
: 환경과 상호작용을 하면서 얻어진 기억들의 패턴들이 녹아져 있는 일련의 저장의 결과
== 우리가 기억해야 되는 활동의 저장 결과
🎈3) 모델
== 함수
: 함수에 데이터를 넣어 함수를 학습시킴
🎈4) 퍼포먼스
: 좋은 함수가 어떤 것일까?
== 특정 지표를 이용한 평가
💥 머신러닝을 통해 궁극적으로 알고 싶은것: 입력되는 것과 그 다음에 출력되는 것 사이의 상관관계를 알고 싶다
-> 그 둘을 이어주는 함수를 찾고 싶다.
X는 변수, y는 최종적인 출력값
: 모형이 출력한 값과 실제 값의 차이를 구해서 제곱을 취해주면 됨
(제곱을 안하면 오차가 양수 음수가 나와서 더해버리면 상쇄가 됨)
-> MSE
-> 오차를 가장 줄여주는 베타를 찾겠다
=> 최종적으로 붉은색 함수를 얻을 수 있음
🎈1. 모델의 대략적인 형태 알려주기: basic function
-> 함수의 정확한 형태와 최종적인 결과는 모르지만 함수가 가정하고 있는 바에 따라서 대략적으로 세워져있는 변수를 이용해 구성된 함수를 컴퓨터에게 알려주기
가정:‘input하고 output하고 선형적인 관계가 있을 것이다. 그런데 그 input에 β라고 하는 아직 미지의 변수를 곱한 형태로 이 둘의 관계가 결정되는 것일 거다.
🎈2. 손실함수
== 1/3{(y1-y1^)²+(y2-y2^)²+(y3-y3^)
-> 여기에 실제 데이터 삽입
==> 최종적인 로스 함수를 찾음, 베타 값 찾을 수 있음
-> 베타가 2가 되면 함수값은 최솟값인 0이 됨
🎈3. 컴퓨터에게 알려주기
위와 같은 방식을 미분해서 알려줌
💥러닝 == optimization(최적화)
: 내가 원하는 가장 최적의 결과를 도출, 이 함수가 내가 원하는 바대로 행동하게 하는 것
✒️ 손실함수는 0이 되지 않을 수 있다! 0에 가깝게끔 최선을 다하자!
-> 지도학습: y의 형태가 분류인지 회귀인지 구분
🔷 y가 categorical variable(범주형 변수) - 고양이, 배,비행기, 등 : Classification
🔷 y가 continuou(연속형 변수) : Regression -> 위에서 구했던 linear Regression도 y가 연속형 숫자이기 때문에 regression으로 문제를 품
🎈1. 트레이닝 데이터만 이용해 학습
-> 비추천!! 일반화가 되지 않음
🎈2. train, test 데이터 나누기
-> train 데이터에 먼저 학습 훈련 후 가장 좋은 방법을 test에 적용
🔷 hyperparameter 튜닝을 해야함
🎈3. training, validation, testing data로 쪼개기
-> train, validation 데이터에 각자 hyperparameter를 적용하여 여러번 확인
-> 최종적인 모형을 가지고 test데이터에 적용
(validation data는 검증용)
🎈4. Cross-Validation
: 데이터를 test와 train으로 나누고 train안에서 train과 validation을 번갈아가면서 최종적인 모형 결정
-> 데이터가 적을 때 적절
💥 validation을 통해 좋은 모형을 찾고 일반화 오류를 계산하는 절차는 꼭 필요함
💥 학습의 기본, 핵심 == 최적화
❤️출처: K-MOOC 실습으로 배우는 머신러닝