< 오이지 (OH-Easy) 머신러닝 >
인공지능과 머신러닝
머신러닝이란?
머신러닝은 데이터에서부터 학습하도록 컴퓨터를 프로그래밍하는 기술
머신러닝의 학습 : 훈련(training) 데이터 세트와 테스트(test) 데이터 세트
▪ 전체 데이터의 70%를 훈련용, 30%는 테스트용으로 분리하며, 데이터 세트 크기에 따라 비율이 다름
100개만 주고 학습 시키고 나머지 20개는 냅두고 20개 넣어서 맞추면 성공
(100은 훈련데이터 , 20개는 테스트데이터)
▪ 빅데이터의 경우 9:1까지 나누기도 함
지도학습
인공지능이란?
1957년 다트머스
1947년 애니악 나옴
인공지능이 역사와 컴퓨터의 역사가 비슷하다
앨런 튜링
컴퓨터 이론 자체
튜링상 : 컴퓨터에서의 노벨상
기계학습이 최종 목표 : 학습 (배우기), 예측(의사결정)
수식에 들어가있는 학습된 모델에 새로운 데이터를 주고 예측 하는 것
데이터 활용 하는 것이 머신러닝
더 계속 전달 여러번 주는 것이 깊다. 딥러닝(머신러닝의 한분야)
왜 머신러닝을 사용하는가?
Ex) 스팸메일 구분
(전통적인) 규칙기반 방법
▪ 분류 규칙을 사람이 구현
▪ 작은 데이터 세트에 유리
▪ 데이터가 변경되면 처음부터 새로 시작해야함(수동) 머신러닝 방법
▪ 입력 데이터로부터 특징 벡터를 추출하고 레이블을 붙임
▪ 빅 데이터 세트도 가능
▪ 규칙을 만드는 일은 학습된 머신러닝 모델이 자동으로 수행
전통적 프로그래밍 기법으로 스팸메일을 구분할 경우, 규칙이 점점 길고 복잡해지고 유지 보수하기 매우 힘듦
▪ 머신러닝 기법에 기반을 둔 스팸 필터는 일반 메일에 비해 스팸에 자주 나타나는 패턴을 감지하여 어떤 단어와 구절이 스팸 메일을 판단하는 데 좋은 기준인지 자동으로 학습함
머신러닝이 유용한 환경
▪얼굴 인식이나 음성 인식과 같이 규칙 기반 프로그램으로 답을 낼 수 없는 복잡한 경우
▪ 거래 기록에서 사기를 감지하는 경우와 같이 규칙이 지속적으로 바뀌는 경우 ▪ 주식 거래, 에너지 수요 예측, 쇼핑 추세 예측의 경우처럼 데이터의 특징이 계속 바뀌는 경우
머신러닝의 주요 작업: 학습 알고리즘을 선택해서 어떤 데이터로 훈련시키는 것
▪ ‘모델의 정확도를 낮추는 좋지않은 데이터’
▪ 충분하지 않은 양의 데이터
▪ 대표성 없는 모호한 데이터
▪ 관련 없는 특징들이 다수 포함된 데이터
▪ ‘훈련 과정에서 발생할 수 있는 문제들’
▪ 훈련 데이터의 과대적합 (overfit) - 100%는 만들면 안됨 98%,99% 로 모호하게 해야함
▪ 훈련 데이터의 과소적합()
머신러닝의 종류
지도 학습 : 문제와 정답을 모두 알려주고 공부시키는 방법
비지도 학습 : 답을 가르쳐주지 않고 공부시키는 방법
강화 학습 : 보상을 통해 상은 최대화, 벌은 최소화 하는 방향으로 행위를 강화하는 학습
지도 학습(Supervised Learning)
▪ 데이터와 정답(label or target)을 훈련 데이터 세트로 제공
▪ 입력에 대한 출력을 연관 짓는 규칙을 학습하는 과정
지도 학습 알고리즘들
▪ 선형 회귀
▪ 로지스틱 회귀
▪ 서포트 벡터 머신
▪ 결정 트리, 랜덤 포레스트
▪ K-최근접 이웃
▪ 신경망 CNN -딥러닝
RNN -->버트 --> GPT ---> 챗형태 ChatGPT
그림 소리 다 숫자로 바꿔야한다.
어떻게 ?
1920 x 1080 해상도
픽셀 (화소) 색상 rgb
256색 (2^8) 1바이트 = 8비트 0 ~255 을 행렬로 표현
k-평균 : 군집화
준지도 학습(Semi-supervised Learning)
▪ 레이블이 있는 데이터와 레이블이 없는 데이터들이 함께 섞여있는 경우, 구분하여 학습을 수행하는 방법
▪ 대용량 데이터에서 일부 데이터에만 있는 레이블 정보를 이용하여 지도학습 방식으로 훈련을 수행 한 후, 레이블이 없는 나머지 데이터에 대해 학습을 수행
강화학습
x : 특징벡터 (사람으로 치면 나이, 키, 성별 등) 갯수만큼 차원
label ,target,class 셋 다 같은 뜻
머신러닝 알고리즘 및 용어
파이썬set tuple list dictionary
Gradiant decent 가 핵심
확률변수 (Random Variable)
▪ 확률적 현상의 수학적 결과
▪ 이산 확률 변수
▪ 확률분포: 확률들의 목록
▪ 확률질량함수(Probability Mass Function: pmf): 이산 확률 변수의 확률 분포
▪ 예, Pr(X = red) = 0.3, Pr(X = yellow) = 0.45, Pr(X = blue) = 0.25
▪ 연속 확률 변수
▪ 확률밀도함수(Probability Density Function: pdf): 연속 확률 변수의 확률 분포
▪ 적분
가우시안 함수 : 정규화 할 수 있는 함수
arg (인자)
y값이 최대일 때 x값 알려주라
이제 지도학습을 분류와 회귀로 나누어서
분류 (Classfication) vs 회귀 (Regression)
분류
▪ 레이블이 없는 주어진 입력 데이터를 레이블로 구분하는 것
▪ 레이블: 클래스의 이름, 유한한 집합
이산 데이터 = 셀 수 있는 데이터
회귀
▪ 레이블이 없는 주어진 입력 데이터에 실제값의 레이블(타겟, 정답)을 예측하는 것
연속적인 데이터에
모델 기반 학습
▪ 훈련 데이터로부터 학습된 파라미터로 모델을 생성하기 위해 훈련 데이터를 사용하 는 것
▪ 알고리즘: 대부분의 지도학습
인스턴스 기반 학습
▪ 모델로 전체 데이터 세트를 사용하는 것
▪ 알고리즘: kNN
얕은 학습(Shallow learning)
▪ 훈련 데이터의 특징으로부터 직접적으로 모델의 파라미터를 학습하는 것
▪ 알고리즘: 대부분의 지도학습
깊은 학습, 딥러닝(Deep learning = Deep neural network)
▪ 대부분의 모델 파라미터는 훈련 데이터의 특징으로부터 직접적으로 학습되는 것이 아니라 이전 계층(레이어)의 출력으로부터 학습되는 것
순방향으로 갔다가
거꾸로 가는 전파 -역전파 (가중치)
순전파 한전 역전파 한번이 1회 했다
머신러닝의 동작원리
서포트 벡신 머신(SVM)
1st step: 데이터 세트
데이터 세트
▪ 10000개 특징 벡터들
▪ 각 특징 벡터는 20000 차원
2nd step: 학습 알고리즘
학습 알고리즘
▪ 서포트 벡터 머신 (SVM: Support Vector Machine)
▪ 스팸메일: “spam” = +1 (양수)
▪ 정상메일: “not_spam” = -1 (음수)
3rd step: 모델
▪ 결정 경계(Decision boundary)
▪ 데이터를 각기 다른 클래스로 분리
▪ 𝐰𝐱 − 𝐛 = 𝟎
▪ w, x: 벡터, b: 실수 y=sign(wx-b)
▪ wx: w(1) x (1) + w(2) x (2)+ …+ w(D) x (D)
▪ 반환 값
▪ +1, 만약 입력이 양수일 경우
▪ -1, 만약 입력이 음수일 경우
모델을 만드는 과정
▪ 모델 생성 과정 = 학습(training)
▪ 모델: f(x)=sign(w∗ x − b ∗ )
▪ w∗ and b ∗ : 최적의 값
w는 가중치 벡터 , b는 절편 또는 편향
4th step: 최적화
마진(Margin: 이득)
▪ 2개 클래스의 데이터 중 가장 가까운 데이터들 간 거리 (직선과)
▪ 큰 마진 값 —> 더 나은 일반화(좋은 모델)
▪ 유클리디안 크기(norm)를 최소화하는 과정: w =
-유클리디안 : 두점사이 거리 공식
--------> 이 방법 svm
- 곡선들은 svm + 커널을 사용
- 완벽하게 분리하는 것은 불가능 : 노이즈, 오류값, 이상치
-결정 경계의 형태 (선형, 곡선, 복합)는 모델의 정확도를 결정!
'머신러닝 > 머신러닝 실무' 카테고리의 다른 글
4주차 머신러닝 :: 선형회귀 (0) | 2024.08.10 |
---|---|
5주차 머신러닝 :: Support Vector Machine(SVM) (0) | 2024.08.09 |
3주차 머신러닝 데이터 시각화 (1) | 2024.08.05 |
2주차 - 머신러닝 데이터분석 :: 판다스(Pandas) (0) | 2024.08.02 |
2주차 - 머신러닝 데이터분석 :: Numpy, Pandas 실습 (0) | 2024.08.01 |