본문 바로가기

Data Science18

딥러닝 기초 나만의 정리 딥러닝 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.
numpy 라이브러리 numpy 라이브러리 머신러닝에서는 숫자, 사람, 동물 등의 인식하기 위해 이미지데이터를 행렬도 변환하는것이 중요함 행렬을 나타내기 위해 list를 사용할수도 있지만, 행렬연산을 위해 직관적이지도 않고 오류의 가능성이 높기때문에, 행렬연산을 위해 numpy사용이 필수다 0. 목차 vector/ matrix 생성 행렬 사용법 행렬 곱(dot product) broadcast index / slice / iterator 전치행렬(transpose) concatenate useful function ( loadtxt(), rand(), argmax(), ..........) 1. vector/ matrix 생성 (1) vector vector는 np.array([....])를 사용하여 생성 shape: sha.. 2020. 6. 24.