AI 30

[DL] 4. 딥러닝 시작

4.1 인공 신경망의 한계와 딥러닝 출현퍼셉트론이란 다수의 신호(흐름이 있는)를 입력으로 받아 하나의 신호를 출력하는데, 이 신호를 입력으로 받아 '흐른다/안 흐른다(1 또는 0)'는 정보를 앞으로 전달하는 원리로 작동한다.오늘날 인공신경망에서 이용하는 구조(입력층, 출력층, 가중치로 구성된 구조)는 퍼셉트론이라는 선형 분류기이다. 퍼셉트론의 원리를 이해하기 위해서는 논리 게이트를 알아야한다. AND 게이트AND 게이트는 입력 중 어떤 하나라도 '0'을 갖는다면 작동을 멈추며 모든 입력이 '1'일 때 작동한다.OR 게이트OR 게이트는 입력에서 둘 중 하나만 '1'이거나 둘 다 '1'일 때 작동한다.XOR 게이트XOR 게이트는 배타적 논리합이라는 용어로 입력 두 개 중 한 개만 '1'일 때 작동하는 논리 ..

[ML] 3. 머신 러닝 핵심 알고리즘: 비지도학습

3.2 비지도학습비지도 학습 : 레이블이 필요하지 않으며 정답이 없는 상태에서 훈련시키는 방식 비지도 학습에는 군집(clustering)과 차원 축소(dimensionality reduction)가 있다.군집은 각 데이터의 유사성(거리)을 측정한 후 유사성이 높은(거리가 짧은) 데이터끼리 집단으로 분류하는 것이다.차원 축소는 차원을 나타내는 특성을 줄여서 데이터를 줄이는 방식이다. 구분군집차원 축소목표데이터 그룹화데이터 간소화주요 알고리즘K-평균 군집화(K-Means)주성분 분석(PCA)예시사용자의 관심사에 따라 그룹화하여 마케팅에 활용데이터 압축중요한 속성 도출3.2.1 K-평균 군집화왜 사용할까?→ 주어진 데이터에 대한 군집화 언제 사용하면 좋을까?→ 주어진 데이터셋을 이용하여 몇 개의 클러스터를 ..

[ML] 3. 머신 러닝 핵심 알고리즘: 지도학습

3.1 지도학습지도 학습 : 정답을 컴퓨터에 미리 알려주고 데이터를 학습시키는 방법구분분류회귀데이터 유형이산형 데이터연속성 데이터결과훈련 데이터의 레이블 중 하나를 예측연속된 값을 예측예시학습 데이터를 A-B-C 그룹 중 하나로 매핑결과값이 어떤 값이든 나올 수 있음3.1.1 K-최근접 이웃왜 사용할까?→ 주어진 데이터에 대한 분류 언제 사용하면 좋을까?→ K-최근접 이웃은 직관전이며 사용하기 쉽기 때문에 초보자가 쓰기에 좋다. 또한, 훈련 데이터를 충분히 확보할 수 있는 환경에서 사용하면 좋다. K-최근접 이웃(K-nearst neighbor)은 새로운 입력을 받았을 때 기존 클러스터에서 모든 데이터와 인스턴스 기반 거리를 측정한 후 가장 많은 속성을 가진 클러스터에 할당하는 분류 알고리즘이다.과거 데..

[ML] 1. 머신러닝과 딥러닝

1.1 인공지능, 머신러닝과 딥러닝인공지능이란 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터(기계)가 할 수 있도록 하는 기술이다. 인공지능을 구현하는 방법으로 머신러닝과 딥러닝이 있다. 인공지능과 머신러닝, 딥러닝의 관계는 아래와 같다." 인공지능 > 머신러닝 > 딥러닝 "   머신러닝과 딥러닝 차이를 표로 정리하면 다음과 같다.구분머신러닝딥러닝동작 원리입력 데이터에 알고리즘을 적용하여 예측을 수행한다.정보를 전달하는 신경망을 사용하여 데이터 특징 및 관계를 해석한다.재사용입력 데이터를 분석하기 위해 다양한 알고리즘을 사용하며, 동일한 유형의 데이터 분석을 위한 재사용은 불가능하다.구현된 알고리즘은 동일한 유형의 데이터를 분석하는 데 재사용된다.데이터일반적으로 수천 개의 데이터가 필요하다.수백만 개 ..

[ML] 1. 머신러닝과 딥러닝

1.1 인공지능, 머신러닝과 딥러닝인공지능이란 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터(기계)가 할 수 있도록 하는 기술이다. 인공지능을 구현하는 방법으로 머신러닝과 딥러닝이 있다. 인공지능과 머신러닝, 딥러닝의 관계는 아래와 같다." 인공지능 > 머신러닝 > 딥러닝 "   머신러닝과 딥러닝 차이를 표로 정리하면 다음과 같다.구분머신러닝딥러닝동작 원리입력 데이터에 알고리즘을 적용하여 예측을 수행한다.정보를 전달하는 신경망을 사용하여 데이터 특징 및 관계를 해석한다.재사용입력 데이터를 분석하기 위해 다양한 알고리즘을 사용하며, 동일한 유형의 데이터 분석을 위한 재사용은 불가능하다.구현된 알고리즘은 동일한 유형의 데이터를 분석하는 데 재사용된다.데이터일반적으로 수천 개의 데이터가 필요하다.수백만 개 ..

[DL] 07-3 신경망 모델 훈련

손실곡선 아래와 같이 패션 MNIST 데이터셋을 적재하고 훈련 세트와 검증 세트로 나눈다. from tensorflow import keras from sklearn.model_selection import train_test_split (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() train_scaled = train_input / 255.0 train_scaled, val_scaled, train_target, val_target = train_test_split(train_scaled, train_target, test_size = 0.2, random_state = 4..

[DL] 07-2 심층 신경망

2개의 층 아래와 같이 텐서플로의 케라스 패키지를 임포트하고 패션 MNIST를 불러온다. from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() 이미지의 픽셀값을 0~255 범위에서 0~1 사이로 변환하고, 28 * 28 크기의 2차원 배열을 784 크기의 1차원 배열로 펼친다. 마지막으로 사이킷런의 train_test_split() 함수로 훈련 세트와 검증 세트로 나눈다. from sklearn.model_selection import train_test_split train_scaled = train_input / 255.0 tra..

[DL] 07-1 인공 신경망

패션 MNIST 아래와 같이 텐서플로의 케라스 패키지를 임포트하고 패션 MNIST를 불러온다. from tensorflow import keras (train_input, train_target), (test_input, test_target) = keras.datasets.fashion_mnist.load_data() keras.datasets.fashion_mnist 모듈 아래 load_data()함수는 훈련 데이터와 테스트 데이터를 나누어 반환하며 이 데이터는 각각 입력과 타깃의 쌍으로 구성되어 있다. 전달받은 데이터를 출력하면 아래와 같은 결과를 확인할 수 있다. print(train_input.shape, train_target.shape) 훈련 데이터는 60,000개의 이미지로 이루어져 있으며..

[ML] 06-3 주성분 분석

차원 축소는 원본 데이터의 특성을 적은 수의 새로운 특성으로 변환하는 비지도 학습의 한 종류이다. 차원 축소는 저장 공간을 줄이고 시각화하기 쉽고 다른 알고리즘의 성능을 높일 수 있다는 장점을 갖는다. 주성분 분석은 차원 축소 알고리즘의 하나로 데이터에서 가장 분산이 큰 방향을 찾는 방법이다. 이러한 방향을 주성분이라고 부르며 주성분 분석은 원본 데이터를 주성분에 투영하여 새로운 특성을 만들 수 있다. 일반적으로 주성분은 원본 데이터에 있는 특성 개수보다 작다. PCA 클래스 PCA 클래스를 통해 과일 사진 데이터에서 주성분 분석을 수행해보자. !wget https://bit.ly/fruits_300_data -O fruits_300.npy import numpy as np fruits = np.load..

[ML] 06-2 k-평균

k-평균 알고리즘 소개 k-평균 알고리즘은 처음에 랜덤하게 클러스터 중심을 정하고 클러스터를 만든다. 그다음 클러스터의 중심을 이동하고 다시 클러스터를 만드는 식으로 반복해서 최적의 클러스터를 구성하는 알고리즘이다. 클러스터 중심은 k-평균 알고리즘이 만든 클러스터에 속한 샘플의 특성 평균값이다. 센트로이드라고 부르며 가장 가까운 클러스터 중심을 샘플의 또 다른 특성으로 사용하거나 새로운 샘플에 대한 예측으로 활용할 수 있다. 알고리즘의 작동 방식은 아래와 같다. 무작위로 k개의 클러스터 중심을 정한다. 각 샘플에서 가장 가까운 클러스터 중심을 찾아 해당 클러스터의 샘플로 지정한다. 클러스터에 속한 샘플의 평균값으로 클러스터 중심을 변경한다. 클러스터 중심에 변화가 없을 때까지 2번으로 돌아가 반복한다..