4.14 Siklearn -2 SVM, 딥러닝

이재빈·2022년 4월 14일
0

SVM : Support Vector Machine

초평면을 이용해서 문제를 해결하는 알고리즘(차원을 늘려서 해결)

초평면 : N차원에서 -1차원이 면의 차원
3차원에서 2차원의 면으로 문제를 해결

margin : A 클래스와 B 클래스 경계선 사이의 길이
SV : A 클래스와 B 클래스 경계선 사이의 공간
38선과 DMZ
매개변수 c 값에 대해서 겹치는 값을 얼마큼 허용할지 구분

딥러닝 역사

XOR Problem
신경망을 하나가 아닌 여러개를 쓰니까 해결가능한것을 수학적으로 증명함
Multi-layered Perception
SVM
Deep Neural Network

딥러닝 frameworks

TensorFlow 1순위 : 저수준 api, 컴퓨터언어에 가까워서, 진입장벽높음
PyTorch 1순위, 고수준 api, 사람언어에 가까워서, 진입장벽 낮음
keras : 개념 잡기 좋음, 진입장벽 낮음,
ONNX : 오닉스, 출력을 오닉스로 하면 모든 호환이 가능함(중립적인 모델)
Microsoft Cognitive toolkit (음성관련으로는 쓸만함)

히든 레이어 부분들은 프로그램을 주로 이용함

※ 훈련반복
한 layer씩 지날때마다 가중치에 의해 데이터 변환이 이루어짐
랜덤한 가중치를 부여하고 나온 예측된 결과 y와 진짜 y를 비교해서 다시 가중치(w, weight)를 업데이트
이것을 반복

하지만 과훈련하면 과적합 문제발생 -> X_test값 넣음

딥러닝 Math

1차 함수

def linear_function(x):
    a = 0.5
    b =2
    
    return a * x + b

배열을 넣으면 선으로 나옴

x = np.arange(-5,5,0.1) #배열
y = linear_function(x)  #배열인 x 값으로 이루어진 배열

plt.plot(x,y)

2차 함수

def quadratic_function(x):
    a=1
    b= -2
    c= -2
    
    return a*x**2 + b*x +c

3차 함수

def cubic_function(x):
    a=4
    b=0
    c=-1
    d=-8
    
    return a*x**3 + b*x**2 + c*x + d

지수함수 와 로그 함수

수학적으로 다양한 차원이 존재 = 수많은 벡터도 존재

텐서tensor

벡터 계산을 단순화하기 위해 같은 성질의 여러 벡터를 한 행렬 안에 표기하고 그것을 단순화하여 표기한 것으로 보면 된다. numpy로 사용

스칼라

하나의 숫자를 담고 있는 텐서, 따로 형상은 없음

.ndim 메소드: 몇차원인지 알 수 있음

a = np.array([1,2,3,4])
m= np.array(10)
d= a * m
print(d)

[10,20,30,40]


Broadcast : 복제해서 갯수를 맞춘다음에 계산함

전치행렬

T 메소드 ex) a.T
가로데이터를 세로로 세우는 것

[1,2,3] 을 [1,4]
[4,5,6]    [2,5]
           [3,6]

MNIST 손글씨 이미지

keras 는 내부적으로 데이터를 가지고 있는 것이 아니라 실행하는 순간 구글 사이트에 가서 받아온다.

신경망 구조

퍼셉트론


활성화 함수(임계점을 판단하는 함수)

TIP

unit 8 : 8비트 정수형이다. 2**8 =256

int=정수 u=양의~

.sequential() 아래쪽이 순차적으로 실행

profile
안뇽하세용

0개의 댓글

관련 채용 정보