머신러닝: 기계학습을 통해 발전하는 것
일반프로그램과 머신러닝 프로그램의 차이
-일반프로그램은 그 작동만 수행하는 반면 머신러닝 프로그래밍은 작동하면 작동할 수록 학습을 통해 더 잘하게 됨
ex) 스팸메일분류
프로그램이 스스로 규칙을 찾아 냄
어떻게 가능한가?
-데이터
머신러닝: 기계가 학습한다는 건, 프로그램이 특정 작업(T)을 하는 데 있어서 경험(E)을 통해 작업의 성능 (P)을 향상시키는 것
-톰 미첼(Tom Mitchell)
머신러닝이 핫해진 이유
1. 사용할 수 있는 데이터가 많아졌다.
경험: 데이터
옛날에는 데이터가 충분하지 않았고 아날로그로 저장했고 굳이 저장도 안했음.
2. 컴퓨터 성능이 좋아졌다!
빠르게 연산할 수 있는 컴퓨터가 필요함
3.활용성이 증명되었다!
머신러닝-빅데이터-딥러닝-인공지능
빅데이터: 엄청나게 많은 양의 데이터를 다루는 분야
인공지능: 컴퓨터 프로그램이 인간처럼 생각 행동하게 하는 학문
머신러닝: 인공지능의 달성하기 위한 방법
딥러닝: 머신러닝의 한 분야
지도학습 : supervised learning, 답이 있고 이 답을 맞추는게 학습의 목적
ex)스팸 메일 분류 프로그램 , 아파트 가격 예측 프로그램
-분류(classification)-->스팸메일
-회귀(regresseion)-->집값
비지도학습 :unsupervised learning, 답이 없고 이 답을 맞추는게 학습의 목적
ex) 알아서 분류하셈!
강화학습:
K-NN알고리즘 (k-nearest neighbor)
타이타닉
머신러닝
컴퓨터과학+수학(선형대수,미분,통계,확률)
-----------------
선형대수학 : 일차식이나 일차 함수를 공부하는 학문
일차식: 가장 높은 차수가 1인 다항식
다항식: 항이 여러개인 식
일차함수
행렬곽 벡터
행렬: 수를 직사각형 형태로 나열한 것
행은 가로 열은 세로
벡터: 행또는 열이 하나밖에 없는 행렬 (행벡터, 열벡터)
벡터의 경우는 원소의 갯루를 통해서 나타나낸다.
import numpy as np
행렬 연산
덧셈은 그냥 더하면 됨
행렬을 더하기 위해서는 두 행렬의 차원이 같아야함
곱셈
scala 곱하기 행렬은 모든 값에 스칼라값을 곱해주면 됨
행렬곱하기 행렬
내적분 =a1행과 b1열을 곱해서 다 더함 그러면 결과행렬 1행1열에 위치하게됨
나머지도 이런식
mxn 행렬과 nxp행렬이 곱했을 때 mxp행렬이 나오게 됨
행렬AB와 행렬 BA 는 다름
특수 행렬들
전치행렬
A -->At 행과 열을 바꾸는 것
단위행렬
I 기호를 사용하며 대각선만 1이고 나머지는 0으로 구성되어 있음
목적: 어떤 행렬이든지 간에 기존행렬이 그대로 유지 될 수 있게 하는 행렬
역행렬
A라는 행렬이 있을 때 곱하여 단위행렬 I가 나올 수 있게 하는 행렬