2022/04/14

jungkwanlee·2022년 4월 14일
0

코딩일지

목록 보기
17/108

1) 학습한 내용

SVM(Support Vector Machine)
기계 학습의 분야 중 하나로 패턴 인식, 자료 분석을 위한 지도 학습 모델이며, 주로 분류와 회귀 분석을 위해 사용한다.

SVM의 목표

Maximum margin hyperplane을 찾는 것, 즉 마진을 최대화하는 초평면을 찾는 것

SVM의 장점

-분류문제나 예측문제 동시에 쓸 수 있다
-신경망 기법에 비해서 과적합 정도가 덜하다
-예측의 정확도가 높음
-사용하기 쉽다

SVM의 단점

-Kernel과 모델 파라미터를 조절하기 위한 테스트를 여러 번 해봐야 최적화된 모형을 만들 수 있다
-모형 구축 시간이 오래걸린다
-결과에 대한 설명력이 떨어진다

TensorFlow

- Google, 핵심 코드가 C++로 작성
- 저수준API
- 뛰어난 이식성 및 확장성
- 진입장벽 다소 높음

Keras

- 직관적이고 쉬운 API
- TensorFlow를 Backend로 활용
- 동일한 코드로 CPU, GPU에서 실행 가능

Pythorch

- Facebook
- C/CUDA Backend로 사용
- 진입장벽이 낮음 파이썬 문법과 유사
- GPU 가속 연산

완전 연결 계층

  • 모든 노들이 서로 연결된 신경망
  • Dense Layer라고도 불림

딥러닝을 위한 수학

일차함수
  • y = ax + b
  • 그래프 상에서 직성인 그래프(linear)

이차함수

a*x**2+b*x+c

삼차함수(다항함수)

a*x**3+b*x**2+c*x+d
지수함수/로그함수 지소함수-로그함수는 역함수 관계(y=x 직선 대칭 단, 밑이 같을 때.) 파이썬으로 직접 구현 가능

지수함수
y = ax ( a!=0)(기본형)
y = ex (e = 2.71828..)

역함수 관계
y = x 대칭

함수 조작
y = -log(x)와 y = -l

미분 어떤 함수를 나타내는 그래프에서 한 점의 미분값(미분계수)을 구하는 것은 해당 점에서의 접선을 의미

편미분
변수가 1개짜리인 위의 수치미분과 달리, 변수가 2개 이상일 때의 미분법을 편미분이라고 함.
다변수 함수에서 특정 변수를 제외한 나머지 변수는 상수로 처리하여 미분을 하는 것
각 변수에 대한 미분 표시를 @를 통해 나타남
ex) f(x0,x1) = x2/0 + x2/1

텐서
스칼라(0차원 텐서)
하나의 숫자를 담고 있는 텐서
형상은 없음.

신경망 구조

퍼셉트론
인공신경망의 한 종류
다수의 입력과 가중치를 곱하여 그 값에 편향을 더한 값이 어느 임계치 값을 초과하면 활성화 함수를 통과

논리회로

논리 게이트
  • AND
  • OR
  • NOT
  • NAND
  • NOR

덴스 라이어(Dense Layer

케라스에서 사용되는 레이어(Layer, 층). 핵심 데이터 구조는 모델이고, 이 모델을 구성하는 것이 Layer이다.

다층 퍼셉트론 신경망에서 사용되는 레이어로 입력과 출력을 모두 연결해준다. 예를 들어, 입력 뉴런이 4개, 출력 뉴런이 8개라고 할때 총 연결선은 4x8=32개가 된다. 각 연결선은 가중치(weight)를 포함하고 있는데 연결강도를 의미한다. 가중치가 높을 수록 해당 입력 뉴런이 출력 뉴런에 미치는 영향이 크고, 낮을수록 미치는 영향이 작다.

from tensorflow.python.keras.layers import Dense
Dense(8,input_dim=4,activation='relu')

  • 첫번째 인자 : 출력 뉴런의 수

  • input_dim : 입력 뉴런의 수

  • activation : 활성화 함수를 설정. ( 'lenear' :Defualt 값으로 입력 뉴런과 가중치로 계산된 결과 값이 그대로 출력 값이 됨. 'relu' : rectifier 함수로 은닉층에 주로 쓰임. 'sigmoid' : 시그모이드 함수로 이진 분류 문제에서 출력 층에 주로 쓰인다. 'softmax', : 다중 클래스 분류 문제에서 출력 층에 주로 쓰인다. )
    파이썬 딥러닝 - 07. Layer 의 종류

2) 학습내용 중 어려웠던 점

오늘 수업은 코딩과 간단한 개념 설명이다. 강사의 지시를 따랐고 이번에도 무난하게 진행되었다.

3) 해결방법

강사의 수업을 보고 그걸 따라하는 것도 중요하지만 여러 자료를 인터넷으로 뒤져봐야 하는 것도 중요하다.

4) 학습소감

오늘 수업은 사이킷 런, 케라스, 텐서플로우에 관한 개념 설명과 케라스를 실행시키는 방법을 강의하였다. 내가 예전에 독학 했었던 것은 지금까지 사이킷 런이었던 것이었고 케라스를 체험해본 바는 처음 맛보기를 해보았는데 사이킷런보다 케라스가 문법적으로는 간단하다. 하지만, 그럼에도 사이킷런을 쓰는 것은 아마 사이킷런의 효율성이 훨씬 월등하기 때문인것으로 알고 있다.

0개의 댓글

관련 채용 정보