목록분류 전체보기 (277)
ecsimsw
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmnKAF/btqCkRs3Tol/6P6n0g7THbwUq7lk1FjyV1/img.png)
이진 분류 ( Binary Classification ) - 적합/부적합, 합격/불합격, 스팸/햄 처럼 2가지 선택지로 분류하는 것을 이진 분류라고 한다. 놀이동산에서 범퍼카를 타려면 키가 126cm 이상이어야 한다고 생각해보자. 그럼 키에 따른 분표는 다음과 같을 것이다. - 이전 선형 회귀에서 본 분표랑은 조금 다르게 생겼다. 그래프는 직선보다는 S에 가깝고, y의 값은 적합, 또는 부적합 두가지 경우만을 갖는다. 적합을 1, 부적합을 0이라고 하면, 예측 값은 0~1 값만을 갖고, 그 모양은 S인 함수를 만들어야 이런 이진 분류를 잘 표현할 수 있을 것이다. - 이런 이진 분류를 풀기 위한 대표적인 알고리즘이 로지스틱 회귀이고, 그 분포를 가장 잘 설명하기 위해 위 조건을 충족하는 함수, 시그모이드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cAueKK/btqCpQTMpBK/GvC3QhWZKE9ZdrOlYRUfeK/img.png)
Optimizer - 선형 회귀 학습은 결국 데이터를 가장 잘 표현할 수 있는 선(단순 선형 회귀 기준으로)을 그리는 과정이다. 그 예측 값과 실제 값의 그 오차를 표현하는 값을 최소화하는 알고리즘이 최적화 알고리즘 / Optimizer 이다. - 기본적인 최적화 알고리즘 중 하나가 경사 하강법이다. Gradient descent - 가설 H(x)=Wx+b에서 편향 b를 제거하고 가중치 W만 생각하여, 가설을 H(x) = Wx라고 하자. 비용 함수는 아래 그래프처럼 2차 함수 형태를 갖을 것이고, 그 값이 최저점이 되는 빨간색 꼭짓점의 W을 찾아야한다. 검정 원 표시는 랜덤하게 정해진 W 값이 점차 목표 W 값에 수렴하는 과정을 표시하였다. 이 과정이 바로 경사 하강법이다. - W값을 움직이는 로직은 비..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/k72VP/btqCiodHqFP/aP1VdYjCGlGkbsGJGxCq8k/img.png)
Linear Regression - 어떠한 경향을 갖는다. 라는 것에 다음 데이터의 결과를 예측할 때가 많다. 더 많은 시간을 공부에 쓰면 더 좋은 점수를 받더라, 반도체 집적 회로의 성능이 2년에 2배씩 증가하더라. 처럼 기존의 데이터가 어떤 경향을 갖는지를 파악하여, 그럼 8시간 공부한 시험에는 몇 점을 받겠구나, 반도체는 2020년도에 어떤 성능을 갖겠구나 라는 예측을 하게 된다. 이렇게 종족 변수(y)와 독립 변수(x)의 선형 상관 관계를 모델링한 것을 선형 회귀라고 한다. - 독립 변수(x)의 개수에 따라, 1개라면 단순 선형 회귀, 2개 이상이라면 다중 선형 회귀 분석이라고 한다. Hypothesis - 대략 50명 정도 되는 사람의 키와 몸무게를 기록했다고 생각해보자. 해당 집단의 기록은 아..
개요 - 텐서플로우, 사이킷 런, 케라스 등, 라이브러리로 혼자 예제를 만들어보고 학습해보았다. 그렇지만 사실, 어떤 라이브러리에 무슨 기능이 있고, 그것을 사용하면 어떤 마법이 벌어진다. 정도로 경험한거지, 어떤 모델이 어떤 학습 유형에 효과적인지, 어떤 원리인지 전혀 모르는 상태이다. - 지금까지 학습을 어플리케이션단에서 어떻게 사용되는지 활용해보면서 공부했다면, 이번에는 학습 요소, 알고리즘 원리, 보다 효율적인 학습을 위한 방법을 공부해볼 생각이다. 지도 학습 (Supervised) / 비지도 학습 (Un-supervised) / 강화 학습 (Reinforcement) - 지도 학습 : 지도 학습은 학습 데이터와 그 데이터에 대한 레이블이 지정된 상황에서 학습하는 것이다. 예를 들어 강아지, 고양..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bcAvCl/btqB5hMdPv9/wfyxrRfi1leiZK913i6EFk/img.jpg)
PIL / OpenCV / 이미지 처리 - 이미지 처리를 위한 라이브러리를 간단하게만 사용해보았다. - 영상 안의 사람이나 사물을 인식하고 이를 레이블링 하는 등의 프로젝트를 만들어보면서 공부할 생각이다. PIL - 파이썬에서 이미지를 처리하기 위한 대표적인 라이브러리. Example - 이미지를 정의한 사이즈의 0,1 이차원 배열로 변환한다. - 이미지를 회색조로, 크기를 정의한 사이즈로 변경하고, 전체 픽셀 데이터를 2차원으로 표현한 후, 이 전체 픽셀의 평균값을 계산한다. 모든 각 픽셀을 평균값과 비교하여 그보다 크면 1, 작으면 0로 하여 다시 2차원 배열에 저장한다. from PIL import Image import numpy as np import matplotlib.pyplot as pp ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVQ3Vw/btqBODBZBHl/7l5bmdIBt7eK19Y6XiaayK/img.png)
Keras 활용 / BMI 계산 / 학습 후 저장, 오답 확인 1. bmi 계산식을 이용해서 20000개의 키/몸무게/상태 데이터를 csv 파일로 생성한다. 2. Keras 학습하여 bmi 계산식을 모르는 상황에서 학습만으로 얼마나 정확히 분류할 수 있는가 평가한다. 3. 학습된 결과를 확인하고, 예측에 실패한 데이터를 확인한다. 4. model은 JSON, weight는 h5으로 각각 저장하고 불러와 해당 모델을 사용해본다. 5. svm과 학습 결과를 비교한다. 설명 참고 : https://ecsimsw.tistory.com/entry/Keras 코드 내용 1. Create BMI data import random dataSrc = "./data_bmi/" ## CreateBMI data Set def..
Keras : 딥러닝을 쉽게 하도록 만들어진 인공 신경망 라이브러리. - 예시는 https://ecsimsw.tistory.com/entry/Keras-%ED%99%9C%EC%9A%A9의 BMI 계산 학습의 내용이다. 모델 구성 / model.compile() model = Sequential() model.add(Dense(512, input_shape=(2,))) model.add(Activation('relu')) model.add(Dropout(0.1)) model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.1)) model.add(Dense(3)) model.add(Activation('softmax')) model.co..