본문 바로가기

Data Science/머신러닝11

CNN 나만의 정리 CNN 나만의 정리 1. CNN 1.1 CNN 구조 CNN의 경우 일반적인 신경망과 진행은 비슷하지만, feed forward 부분에서 일반적 신경망에서의 은닉층 부분을 CNN에서는 완전연결층으로 수행한다. 1번 : 입력데이터 x와 t를 insert 2번 : feedforwad 과정 컨볼루션층과 완전연결층을 거쳐 출력 y를 내보낸다 3번 : 출력 y값이 최소값인지 아닌지 판단 4번 : 최소가 아니라면 계속해서 반복 옵티마이저를 사용하여 W, b를 업데이트 5번 : 최소일경우 학습 종료 1.2 컴볼루션층 개요 컨볼루션 층에서는 총 3가지 단계로 순서대로 이루어져 있다. 입력데이터와 필터들과의 컨볼루션 연산을 통해서입력 데이터 특징을 추출하여 특징 맵을 만들고 (conv) 특징맵에서 relu를 통해 필요없는.. 2020. 9. 17.
오차역전파 나만의 정리 오차역전파(Back Propagation) Review - 수치미분 문제점 딥러닝 학습에서 사용되는 수치미분의 경우 입력이 클경우에 가중치와 bias의 수치미분연산이 오래걸린다. 이러한 문제를 해결하기 위해 오차역전파를 사용한다. 1. 오차역전파(Back Propagation) 개념 원리 가중치나 bias를 편미분 하는대신에 체인 룰을 이용하여 하나의 국소 미분으로 분리 한후에 수학적으로 계산하는방법을 오차역전파라고 한다. 쉽게 말해서 편미분 대신 행렬 표현으로 만들어서 계산하는것! 행렬로 계산하기 때문에 속도가 빠르다. 2. 오차역전파의 패턴 미분의 방법에서 행렬곱 방법으로 변환할때 복잡한 수학 증명 과정이 있습니다. 하지만 변환 결과에서 오차역전파의 일정한 패턴을 보이고 해당 공식 패턴을 잘 활용하여.. 2020. 9. 16.
딥러닝 기초 나만의 정리 2 딥러닝 1. 딥러닝으로 XOR문제 해결 XOR 문제로 알아보는 딥러닝 아키텍처 위 그림은 XOR 데이터를 입력으로 하는 딥러닝의 아키텍처를 그린것이다 해당 아키텍처는 입력층 - 은닉층 - 출력층으로 이루어져있고, 은닉층의 경우 여러개의 은닉층을 만들수 있다. 다만 은닉층과 노드 수가 많아지면 학습 속도가 느려지고 정확도에 문제가 발생할수 있기 때문에 적절한 개수의 은닉층과 노드수를 고려하여 구현해야한다. 딥러닝이 한 번 훈련할때 위 1~4번까지 순서대로 반복하는데 아래 상세하게 작성해보겠다. 1번 Input!! x1, x2의 입력데이터를 입력층에 넣는다. 2번 feed forward feed forward 과정으로서 각각의 층의 출력이 다음 층의 입력값으로 들어가는 과정이다 입력층의 output은 은닉층.. 2020. 9. 16.
딥러닝 기초 나만의 정리 딥러닝 1. 인공 신경망(Neural Network) 개념 (1) 신경망 신경 세포 뉴런은 이전 뉴런으로부터 입력을 받으면, 입력 값들의 모든 합이 임계점에 도달해야만 출력신호를 발생시킴. 이처럼 입력신호를 받아 특정 값(임계점)을 넘어서야만, 출력을 생성해주는 함수를 활성화 함수(activation function)라고 한다. 지금까지 배워온 Logistic Regression 시스템의 sigmoid함수가 대표적인 활성화 함수임, 즉 sigmoid는 임계점이 0.5를 넘어야만 1로 출력을 내보내고, 0.5보다 작을경우 출력을 내보내지 않는다. (2) 인공신경망 이러한 생물학적 신경망의 개념을 참고하여 딥러닝에서 쓰이는 인공신경망 개념을 만들었다. 신경망에서의 뉴런의 역할을 인공신경망에서 로지스틱회귀가 .. 2020. 7. 8.
LSTM으로 IMDB 리뷰 감성 분류하기 LSTM으로 IMDB 리뷰 감성 분류하기 이번에는 데이터를 분류하기 위해 케라스를 활용해 보겠다. 머신 러닝의 연습을 위해 케라스에서는 영화 사이트 IMDB의 리뷰데이터를 제공해주는데, 해당 데이터와 LSTM을 활용하여 감성에 따라 분류하는 알고리즘을 구현을 연습해보겠다. from keras.datasets import imdb from keras.preprocessing.sequence import pad_sequences from keras.models import Sequential from keras.layers import Dense, LSTM, Embedding from keras.callbacks import EarlyStopping, ModelCheckpoint from keras.mode.. 2020. 7. 2.
Logistic Regression(Classification) 나만의 정리 Logistic Regression - Classification 1. Logistic Regression(Classification) 개념 어떠한 input의 결과의 선택지가 2개만 존재하는 경우에, 둘중 하나를 결정하는 문제를 이진 분류(Binary Classification)라고 한다. 이러한 이진 분류 문제를 풀기위한 대표적인 알고리즘이 Logistic Regression(로지스틱 회귀)라고한다. input에 따른 output이 2가지로 나뉘는 Pass(1) or Fail(0) 인 Training Data를 이용해 learning 학습을 진행시킨 System을 이용하여 Test Data의 input의 output(Pass(1) or Fail(0)) 을 예측하는 시스템 이진분류 (Binary Cla.. 2020. 6. 28.
Linear Regression 나만의 정리 선형 회귀(Linear Regression) 1. 선형회귀 1.1 회귀(Regression) Training Data를 이용하여 데이터의 특성과 상관관계 등을 파악하고, 그 결과를 바탕으로 Training Data에 없는 미지의 데이터(Test Data)가 주어졌을 경우에, 그 결과를 연속적인(숫자) 값으로 예측하는 것 ==> 대부분 머신러닝 문제는 지도학습에 해당됨 머신러닝시스템에서의 학습(learning)의 개념 Training Data를 분석하여 다양한 y = Wx + b 중에서 Training Data의 특성을 가장 잘표현할수 있는 가중치 W(기울기), 바이어스(b)를 찾는것이 학습(learning)의 개념임 1.2 선형 회귀란 ?? 공부 시간을 늘리면 시험 성적이 잘나온다. 집의 평수가 클수록,.. 2020. 6. 27.
지도학습과 비지도학습 나만의 정리 지도학습, 비지도학습 Machine Learning Type 지도학습(Supervised): 어떤 종류의 미래값을 예측하냐에따라 2가지로 나뉨 회귀(Regression) 분류(Classification) 비지도 학습Unsupervised): 정답은 없고 입력값만 있다는것이 지도학습과의 가장 큰 차이 군집화(Clustering): 정답이 없기때문에 군집화로 사용됨 1. 지도학습 지도학습(Supervised Learning)은 입력 값(x)과 정답(t, label)을 포함하는 Training Data를 이용하여 학습하고, 그 학습된 결과를 바탕으로 미지의 데이터(Test Data)에 대해 미래 값을 예측하는 방법 ==> 대부분 머신러닝 문제는 지도학습에 해당됨 예1) 시험공부 시간(입력)과 Pass/Fail.. 2020. 6. 26.
수치미분 나만의 정리 수치미분 1. 미분 (derivative) 미분이란 순간변화율 or 접점의 기울기 입력변수 x가 미세하게 변할때, 함수 f(x)는 얼마나 변하는가? f(x) = x^2 일 경우 f`(x) = 2x f(3) = 9 해석 ==> x = 3 에서 출력은 9임을 의미 f `(3) = 6해석 입력 x= 3 을 미세하게 변화시킬때 함수는 현재 입력 값의 2배인 6배 변화를일으킴을 의미\ 머신러닝에서 자주 사용되는 함수의 미분공식 f(x) = 3 ==> f`(x) = 0 f(x) = x^n ==> f`(x) = nx^(n-1) f(x) = e^x ==> f`(x) = e^x f(x) = lnx ==> f`(x) = 1/x f(x) = e^(-x) ==> f`(x) = -e^(-x) 2. 편미분 (partial der.. 2020. 6. 26.
matplotlib 라이브러리 matplotlib 라이브러리 머신러닝 코드를 구현하기 전에 입력데이터의 분포와 모양을 먼저 그래프로 그려보고, 데이터의 특성과 분포를 파악한후 어떤 알고리즘을 적용할 지 결정하고 있음 데이터 시각화를 위해서는 matplotlib 라이브러리를 사용함 일반적으로 line plot, scatter plot 등을 통해 데이터의 분포와 형태를 파악함 (1) scatter plot (2) line plot 아래 그래프는 y = x^2의 함수를 for문으로 만들어냄 x_data = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4] y_data = [25, 16, 9, 4, 1, 0, 1, 4, 9, 16] 에서 (-5,25) ~ (4,16) 을 찍은 line plot이 출력 2020. 6. 25.