본문 바로가기
AI/머신러닝

[alice] 인공지능/머신러닝 기초

by merona99 2020. 8. 15.
반응형

<과목소개>

 

 

1. 선형대수학_NumPy

스칼라(scalar): 길이, 넓이, 질량, 온도 / 크기만 존재하는 양(숫자)

벡터(vector): 속도, 위치이동, 힘 / 크기와 방향이 모두 존재하는 양

 

Norm

= 원점 0에서 점(x1, x2, ... xn) 까지 이르는 거리

내적(Dot product, Euclidean inner product)

// 저렇게 점으로 표현한 것 =  '곱하기'

 

 

행렬(Matrix)

= 실수를 직사각형 모양으로 배열한 것

  • 같은 차원을 가진 행렬끼리만 연산가능

※ 행렬곱

A(3,2) B(2,3)이라면 안쪽의 차원이 같아야 행렬곱이 가능함

 

전치행렬(Transpose)

= 원행렬의 행과 열을 뒤바꾼 행렬

ex. (3,1) -> (1,3)

 

 

[Numpy]

= python에서 사용하는 과학컴퓨팅용 라이브러리

  • 행렬과 같은 데이터구조, 수학/과학 계산함수 지원
  • 머신러닝에서 대부분의 데이터는 행렬로 표현됨

※ np.dot(x, y) vs x*y

 

[Numpy Array]

비교연산, 논리연산 = bool type

 

※ 표준화(normalize): 모든 원소의 합이 1이 되도록 함

  • 각각의 원소에 원소들의 총합으로 나누면 됨

 

2. 회귀분석

단순선형회귀(Simple Linear Regression)

 

<회귀분석법>

  • 데이터를 가장 잘 설명하는 어떤 선 하나를 찾음

<변수 표기>

  • N: 데이터의 개수
  • X: input데이터, Feature
  • Y: output
  • ( x(i),y(i) ): i번째 데이터

<문제 정의>

  • 데이터: N개의 FB 광고 예산(X)과 판매량(Y)
  • 광고 예산 -> 학습된 모델 -> 판매량
  • 가정: X와 Y는 선형적 관계를 가진다.
  • Y ~ β0X + β1          // β0 = 기울기, β1=절편

 

<모델의 학습 목표>

각 데이터의 실제 값과 모델이 예측하는 값을 최소한으로 하자!

i 번째 데이터 ( x(i),y(i) ) 에 대해:

  • 실제값: y(i)
  • 예측 값: β0x(i) + β1
  • 차이: y(i) - (β0x(i) + β1)

전체 모델의 차이(sum):

 

※ 반례

양수, 음수의 절댓값이 같을경우 합쳤을때 0이되는 문제

해결: 제곱하기

(y(i) - (β0x(i) + β1) )^2

이를 'Loss function' 이라함

 

즉, 이 차이를 최소로 하는 β0 , β1을구하는 것

 

 

<산 정상 오르기>

아무 곳에서나 시작했을 떄, 가장 정상을 빠르게 찾아가는 방법

가정)

  1. 정상의 위치는 알 수x
  2. 현재 나의 위치와 높이는 알 수o
  3. 내 위치에서 일정 수준 이동할 수o

방법)

  1. 현재 위치에서 가장 경사가 높은 쪽을 찾음
  2. 오르막 방향으로 일정 수준 이동
  3. 더 이상 높이의 변화가 없을 때까지 반복

 

다중선형회귀분석(Multiple Linear Regression)

<Notation>

  • N
  • X1, X2, X3
  • Y
  • (x1(i), x2(i), x3(i), y(i)): i번째 데이터

 

<문제정의>

데이터: N개의 X1, X2, X3의 광고 예산과 판매량(Y)

 

<학습 목표>

즉, 이 차이를 최소로 하는 β0 , β1, β2, β3을구하는 것

 

 

다항식 회귀분석(Polynomial Linear Regression)

Y = β0X^2 + β1X+ β2

다중 선형 회귀분석과 원리가 같음

다만 데이터에 전처리를 함으로써 새로운 변수간의 조합을 만들어낸 뒤 회귀분석을 진행하는 것이 차이점!

 

(조합)

 

 

3. 나이즈 베이즈 분류

확률: 어떤 사건이 일어날 것인지 or 일어났는지에 대한 지식 or 믿음을 표현하는 방법

 

Q. 6번 이기면 판돈을 모두 가져감, A는 5번, B는 3번 승리

A의 승리확률: 7/8 (1/2 + 1/4 + 1/8 = 7/8)

B의 승리확률: 1/8

 

베이즈 법칙

X가 주어졌을때, A가 나올 확률

 

 

나이즈 베이즈 분류기

지도학습- 분류 부분

분류(classification): 주어진 데이터가 어떤 클래스에 속하는지 알아내는 작업

분류기: 주어진 데이터가 어떤 클래스에 속하는지 알아내는 방법을 자동으로 학습하는 알고리즘

 

 

Bag of Words & 감정분석

Natural Language(자연어 처리) -> Processing(NLP)

문장 -> 특수 문자 제거 -> Tokenize

 

BoW 모델에서 순서는 중요하지x

 

감정 분류기(Sentiment Classifier)

기계학습 알고리즘은 자동으로 학습되게 함

 

<학습 training>

각각의 문서 셋들에서 나오는 단어의 빈도 수를 측정

해당 단어 빈도수/ 전체 단어 빈도

 

<training 결과>

'마음이 따뜻해지는 최고의 영화'

 

※ 단어가 없을 경우

하나가 0이면 값이 0이 나와버리기 때문에 문제가 됨

  1. 아주 작은수의 상수를 넣기(0.0000001같은 수)
  2. 전체 단어의 빈도수의 평균을 넣어주기

 

 

4. K-Means 클러스터링

비지도학습 - 차원축소 & 클러스터링

 

데이터 포인트들은 비슷한 것들끼리 뭉쳐있음 -> Hard clustering

  • 100% or 0%
  • K-Means, DBSCAN, OPTICS
  • K-Means (k=2, 클러스터가 2개다)

한 개의 데이터 포인트는 숨겨진 클러스터들의 집합이다 -> Soft clustering

  • 세분화해서 나눔
  • FCM, EM, Soft K-Means, Topic Models
  • 일반적으로 많이사용 (더 쉬움)

 

 

[K를 찾는 방법]

1. 눈으로 확인

2. 모델이 데이터를 얼마나 잘 설명하는지

  • Elbow method
  • Silhouette method
  • Gap statistic method

※ 고려해야 할 것

데이터의 특성, 분석 결과로 얻고자 하는것

 

 

[PCA] = 주성분 분석

사용이유

1. 고차원의 데이터를 저차원으로 줄이기 위해

2. 데이터 정제

 

[클러스터링]

주어진 데이터를 비슷한 그룹(클러스터)으로 묶는 알고리즘

 

[K-Means 클러스터링]

반복을 이용한 클러스터링 알고리즘

1. 중심 centroid : 각 클러스터의 중심

2. 중심과의 거리 distance : 중심과 데이터 포인트와의 거리

 

step

0. 초기 중심값 : 데이터 중 임의로 선정

1. 각각의 데이터 포인트에 대해서 가장 가까운 중심점을 구함

2. 가까운 클러스터에게 데이터포인트를 할당, 중심점 업데이트

(1~2 반복)

 

 

 

 

 

 

 

 

반응형

'AI > 머신러닝' 카테고리의 다른 글

[경고메시지 무시]  (0) 2020.08.12
[용어집]  (0) 2020.07.31
[alice] 문과생을 위한 머신러닝  (0) 2020.07.24

댓글