목록AI/Machine Learning (48)
우노
Epoch 모든 훈련 데이터셋을 학습하는 횟수입니다. 주의 사항 너무 많은 Epoch는 overfitting의 위험이 있습니다. Batch Size 훈련 데이터셋 중 몇 개의 데이터를 묶어서 가중치 값을 갱신할 것인지에 대한 정보입니다. 위 그림처럼, 훈련 데이터셋의 개수는 1000개이며, 1 Epoch를 진행한다고 했을 때 Batch Size를 100으로 설정하면 총 10번의 갱신 과정을 거칩니다. 주의 사항 Batch Size는 메모리에 적재시킬 수 있을 만큼의 Size로 정하는게 좋습니다. Batch Size를 너무 작게하면 iteration이 증가하여 학습시간 (forward + backward propagation)이 오래 걸릴 수 있습니다. Iterations 한 Epoch를 진행하기 위해, ..
회귀 분석 (Regression Analysis) 데이터의 연속적인 흐름을 파악해 입력이 들어왔을 때 float 형태의 값을 예측하는 것이다. 예 : 공부 시간을 바탕으로 한 최종 시험 점수 예측 즉, 데이터의 분포가 하나의 선 또는 면 안에 표현될 수 있는 최적의 모델을 찾는 것이다. 모델(가설)을 정의 후 비용함수(Cost Function)로 실제 값와 예측값의 오차를 구한 뒤 이를 최적화하며 학습을 진행한다. 모델(가설) 선형 회귀 (Linear Regression) H(x) = Wx + b 특성(입력값)이 하나이다. 다중 선형 회귀 (Multiple Linear Regression) H(x) = W1x1 + W2x2 + W3x3 + b 여러 특성(입력값)을 사용하여 좀 더 정교한 모델을 제시 H(..
K-최근접 이웃 알고리즘이란? K-최근접 이웃 (K-Nearest Neighbor) 알고리즘은 지도학습 알고리즘 중 하나입니다. 새로운 데이터를 입력 받았을 때, 해당 데이터와 가장 가까이에 있는 k개의 데이터를 확인해, 새로운 데이터의 특성을 파악하는 방법입니다. 아래 그림으로 자세히 살펴보겠습니다. 저 물음표에는 세모와 동그라미 중, 무엇이 들어갈까요? 최근접 이웃 알고리즘은 "?"의 주변에 있는 것이 동그라미이기 때문에 "?"를 동그라미라고 판단하는 알고리즘입니다. 매우 간단하고 직관적인 알고리즘이지만, 단순히 "?"를 가장 가까이 있는 것과 같게 선택하는 것이 옳은 분류가 될까요? 조금만 더 넓혀서 본다면 뭔가 부적절하다는 것이 느껴집니다. 따라서, 단순히 "주변에 가장 가까이 있는게 무엇인가?"..
csv 데이터를 읽어와 DataFrame 생성 import pandas as pd df = pd.read_csv('./spmm dataset 1024 2048 4096 8192.csv') df DataFrame에서 data와 label을 분할해 numpy 배열로 생성 data = df.values[:,1:4] label = df.values[:,4] label에 따른 target_names 생성 import numpy as np target_names = np.array(['spark sm*dm','breeze sm*sm','breeze sm*dm','breeze dm*sm']) 데이터셋을 훈련세트와 테스트세트로 나눈다. scikit..
csv 데이터를 읽어와 DataFrame 생성 import pandas as pd df = pd.read_csv('./spmm dataset 1024 2048 4096 8192.csv') df DataFrame에서 data와 label을 분할해 numpy 배열로 생성 data = df.values[:,1:4] label = df.values[:,4] label에 따른 target_names 지정 import numpy as np target_names = np.array(['spark sm*dm','breeze sm*sm','breeze sm*dm','breeze dm*sm']) 데이터셋을 훈련세트와 테스트세트로 나눈다. scikit..
Iris 붓꽃의 품종 분류 다중 클래스 분류 대표 예제 붓꽃의 4가지 특성 데이터값을 사용해 3가지 붓꽃 품종 중 하나를 예측하는 모델 만들기 모델은 K-최근접이웃 사용 데이터 적재 우리가 사용할 데이터셋은 머신러닝과 통계 분야에서 오래전부터 사용해온 붓꽃 iris 데이터셋입니다. 이 데이터는 scikit-learn의 datasets 모듈에 포함되어 있습니다. load_iris 함수를 사용해서 데이터를 적재하겠습니다. from sklearn.datasets import load_iris iris_dataset = load_iris() load_iris가 반환한 iris 객체는 파이썬의 딕셔너리 Dictionary 와 유사한 Bunch 클래스의 객체입니다. 즉 키와 값으로 구성되어 있습니다. In[11]:..
들어가기 앞서, 인공지능 분야를 공부하게 되면, 자연스럽게 접하게 되는 프레임워크가 있습니다. 바로 구글에서 개발한, 텐서플로우 입니다. 그 다음으로 많이 듣게 되는 용어는 케라스 입니다. 해당 포스트에서는, 아주 간단한 질의 응답으로, 텐서플로우와 케라스의 차이를 알아보겠습니다. 둘은 무슨 사이? Tensorflow 는, 구글에서 개발하고 오픈소스로 공개한 머신러닝 프레임워크입니다. Keras 는, Tensorflow 위에서 동작하는 라이브러리입니다. 왜 Tensorflow 가 있는데, 그 위에서 동작하는 Keras 가 필요한가? Tensorflow 는 훌륭한 프레임워크이지만, 아직 사용을 하기에는 어려운 부분이 많습니다. 특히, 처음 머신러닝을 접하는 사람이라면 더욱 그렇습니다. 반면, Keras 는..
1. 기계학습이란? 어떠한 일을 예측한다는 것은, 수많은 규칙들이 존재하기 때문에 어렵습니다. 예측하는 방법을 일일이 프로그래밍하지 않고 어떤 자료와 현상에서 자동적으로 배우게 하는 것이 바로 기계학습입니다. 즉, 자체적으로 데이터를 보고 학습해서 뭔가를 배우는 능력을 갖는 프로그램을 기계학습이라고 할 수 있습니다. 2. 학습의 종류 학습을 하기 위해서는 데이터가 필요합니다. 학습은 방법에 따라, 지도(Supervised)학습과 비지도(Unsupervised)학습 2가지 종류로 나눌 수 있습니다. 3. 지도 학습 (Supervised Learning) 레이블이 주어진 데이터를 학습하는 것을 지도 학습이라고 합니다. 레이블이 주어진 데이터라는 것은 고양이, 강아지, 모자 등과 같이 개체의 특징이 명확하게 ..