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차원 텐서)
하나의 숫자를 담고 있는 텐서
형상은 없음.
신경망 구조
퍼셉트론
인공신경망의 한 종류
다수의 입력과 가중치를 곱하여 그 값에 편향을 더한 값이 어느 임계치 값을 초과하면 활성화 함수를 통과
논리회로
논리 게이트
덴스 라이어(Dense Layer
케라스에서 사용되는 레이어(Layer, 층). 핵심 데이터 구조는 모델이고, 이 모델을 구성하는 것이 Layer이다.

다층 퍼셉트론 신경망에서 사용되는 레이어로 입력과 출력을 모두 연결해준다. 예를 들어, 입력 뉴런이 4개, 출력 뉴런이 8개라고 할때 총 연결선은 4x8=32개가 된다. 각 연결선은 가중치(weight)를 포함하고 있는데 연결강도를 의미한다. 가중치가 높을 수록 해당 입력 뉴런이 출력 뉴런에 미치는 영향이 크고, 낮을수록 미치는 영향이 작다.
from tensorflow.python.keras.layers import Dense
Dense(8,input_dim=4,activation='relu')
2) 학습내용 중 어려웠던 점
오늘 수업은 코딩과 간단한 개념 설명이다. 강사의 지시를 따랐고 이번에도 무난하게 진행되었다.
3) 해결방법
강사의 수업을 보고 그걸 따라하는 것도 중요하지만 여러 자료를 인터넷으로 뒤져봐야 하는 것도 중요하다.
4) 학습소감
오늘 수업은 사이킷 런, 케라스, 텐서플로우에 관한 개념 설명과 케라스를 실행시키는 방법을 강의하였다. 내가 예전에 독학 했었던 것은 지금까지 사이킷 런이었던 것이었고 케라스를 체험해본 바는 처음 맛보기를 해보았는데 사이킷런보다 케라스가 문법적으로는 간단하다. 하지만, 그럼에도 사이킷런을 쓰는 것은 아마 사이킷런의 효율성이 훨씬 월등하기 때문인것으로 알고 있다.