본문 바로가기

인공지능

(8)
[인공지능] 신경망 모델 훈련 손실 곡선 신경망 모델 훈련 시 fit() 메서드를 활용하는데 이 메서드의 반환 결과로 손실과 정확도가 포함된 딕셔너리가 반환된다. 이를 통해 손실 곡선과 정확도 곡선을 그리면 아래와 같다. import matplotlib.pyplot as plt history = model.fit(train_scaled,train_target,epochs=5) plt.plot(history.history['loss']) plt.xlabel('epoch') plt.ylabel('loss') plt.show() plt.plot(history.history['accuracy']) plt.xlabel('epoch') plt.ylabel('accuracy') plt.show() 위 결과를 보면 에포크마다 손실이 감소하고 정확도..
[인공지능] 인공 신경망(딥러닝, DNN) 인공 신경망 인공 신경망은 확률적 경사 하강법을 사용하는 로지스틱 회귀와 같다. 로지스틱 회귀는 선형 방정식을 사용한 분류 알고리즘으로 소개했다. 로지스틱 회귀는 각 클래스에 대해 선형 방정식을 통해 z값을 구한 뒤 소프트맥스 함수를 거쳐 각 클래스에 대한 확률을 구할 수 있다. 참고로 인공 신경망과 딥러닝은 사실상 동의어이며, DNN(Deep Neural Network, 심층 신경망)이라고 불리기도 한다. 딥러닝에서 자주 활용되는 패션 MNIST의 경우 28*28(가로*세로) 픽셀로 표현된 바지, 치마, .., 구두 등 10개의 의류로 구성되어있다. 여기서, 28*28 픽셀은 각 의류를 나타내는 특성인 x가 되고, 이를 선형방정식을 거치면 y값이 나오게 된다. 소프트맥스 함수 처리한다면 의류에 대한 확..
[인공지능] 확률적 경사 하강법 확률적 경사 하강법 이전 포스팅의 경우 데이터셋이 이미 미리 전부 준비되어있는 상태였다. 하지만, 일부 데이터셋이 준비된 상황에서 시시각각 새로운 데이터셋이 들어오면 이 데이터셋들에 대해서도 훈련을 시켜야한다. 이렇게 원래 학습된 모델을 새 데이터에 대해 업데이트 하는 방식으로 학습하는 모델을 점진적 학습이라고 하고, 그 중 대표적인 알고리즘이 확률적 경사 하강법이다. 확률적 경사 하강법은 훈련 세트에서 랜덤하게 하나의 샘플을 선택하여 가파른 경사를 조금 내려간다. 다음 훈련 세트에서 다시 샘플을 하나 추출하여 경사를 조금 내려가고, 전체 샘플이 소진될 때까지 이를 반복한다. 샘플이 전부 소진되는 한 사이클을 에포크라고 부른다. 그리고 이 에포크 이후에 전체 샘플이 최적점에 도달하지 못했을 경우 계속해서..
[인공지능] 로지스틱 회귀 개요: 럭키백의 확률 럭키백을 구입하면 랜덤한 확률로 다양한 생선 중 하나가 등장한다. 소비자는 이를 구입한 뒤 럭키백을 개봉해야 어떤 생선이 들어있는지 확인할 수 있다. 그리고, 판매자는 생선 별로 럭키백에 존재할 확률을 고지해준다. 이 확률을 알기 위해서는 어떤 모델을 활용해야 할까? k-최근접 이웃을 활용하여 럭키백의 생선 근처에 생선 별로 비율을 확인하면 될 듯 싶다. import pandas as pd fish = pd.read_csv('https://bit.ly/fish_csv') fish.head() 위 데이터프레임에서 Species는 타깃, 즉 물고기의 종류가 되고 나머지 weight, length, ... 등은 특성이 된다. 데이터를 뽑아 전처리하는 작업을 다음과 같이 거친다. #데이터 ..
[인공지능] 특성 공학과 규제(다중 회귀, 릿지, 라쏘) 개요 이전 포스팅에서 다항 회귀를 통해 농어의 무게를 어느 정도 예측할 수 있었으나, 훈련 세트보다 테스트 세트의 결정계수가 높아 과소 적합한게 문제였다. 다중 회귀 이전 포스팅들에서는 하나의 특성을 사용하여 선형 회귀 모델을 훈련시켰다. 이와 다르게 여러 개의 특성을 사용한 선형 회귀를 다중 회귀라고 부른다. 만약 2개의 특성을 사용하게 될 경우 선형 회귀는 평면을 학습하게 된다. 우측 평면은 선형 회귀 방정식인 Y = a * X1 + b * X2 + 절편 으로 정리된다. 만약 특성이 3개일 경우는 3차원이기 때문에 그리거나 상상할 수 없다. 하지만 선형 회귀를 특성이 많은 고차원에서도 적용할 수 있다. 다음 예제에서는 농어의 길이, 높이, 두께 3가지 특성을 고려하여 무게를 예측하려고 한다. 그리고,..
[인공지능] 회귀: k-최근접 이웃 회귀 회귀 지도 학습 알고리즘은 크게 회귀와 분류로 나뉜다. 분류는 이전 포스팅에서 다루었다. 샘플을 몇 개의 클래스 중 하나로 분류하는 문제이다. 회귀는 클래스로 분류하는 것이 아닌 어떤 숫자를 예측하는 문제이다. 예를 들어, 내년 경제 성장률, 배달 도착 시간 등의 예측이 존재한다. k-최근접 이웃 회귀 이전의 k-최근접 이웃 분류의 경우 알고리즘이 간단하다. 데이터 근처에 많은 샘플 존재하는 클래스를 택하면 된다. k-최근접 이웃 회귀의 경우도 비슷하다. 주변 데이터를 선택하고 그 데이터 값을 평균을 내어 값을 예측한다. 예제: 농어의 길이로 무게를 예측하기 농어의 길이가 특성이되고, 무게는 타깃이 된다. 길이와 무게 데이터로 산점도 그리기 import numpy as np perch_length = n..
[인공지능] 데이터: 훈련 세트와 테스트 세트, 데이터 전처리 지도 학습과 비지도 학습 머신러닝 알고리즘은 크게 지도 학습과 비지도 학습으로 나뉜다. 지도 학습에서는 데이터와 정답을 입력과 타깃이라고 부르고 이 둘을 합쳐 훈련 세트라고 한다. 그리고 입력으로 사용된 데이터의 길이, 무게와 같은 자료를 특성이라고 한다. 그리고 실제 평가에 사용하는 데이터를 테스트 세트라고 한다. 가장 간단한 방법은 전체 데이터 중 일부를 훈련 세트, 일부를 테스트 세트로 활용할 수 있다. numpy와 scikitlearn을 활용하여 전체 데이터를 훈련/테스트 세트로 나누기 fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0, 31.5, 32.0, 32.0, 32.0, 33.0, 33..
[인공지능] 머신러닝, 딥러닝 개요 인공지능 사람처럼 학습하고 추론할 수 있는 지능을 가진 컴퓨터 시스템을 만드는 기술을 의미한다. 실제 사람처럼 행동하는 것을 강인공지능이라 하고 사람을 도와 보조적인 역할을 하는 것을 약인공지능이라고 한다. 머신러닝 머신러닝은 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야이다. 통계학과 깊은 관련이 잇다. 대표적으로 사이킷런(scikit-leran)이라는 머신러닝 라이브러리가 존재한다. 딥러닝 딥러닝은 많은 머신러닝 알고리즘 중 인공 신경망(Artificial Neural Network)을 기반으로한 방법을 통칭한다. 유명한 라이브러리로는 텐서플로(Tensorflow), 파이토치(PyTorch)가 있다. 가장 간단한 머신러닝 예시 시장에서 '도미', '곤..