Group Study (2023-2024)/Machine Learning 입문 7

[ML입문] week6 - 합성곱 신경망

1. 합성곱 신경망 합성곱 신경망은 주로 이미지 분류를 할 때 자주 쓰이는 신경망이다. 이러한 합성곱 신경망은 크게 합성곱층과 풀링층의 쌍으로 구성된다. 2. 합성곱층 2-1 ) 연산 과정 합성곱층에서는 합성곱 연산을 통해 이미지의 특징을 추출한다. 3x3 또는 5x5 크기의 행렬인 필터(커널)를 이미지의 왼쪽 위부터 오른쪽 아래까지 순차적으로 훑는다. 이렇게 훑는 과정을 슬라이딩이라고 한다. 위 사진에서는 5x5 크기의 이미지를 3x3 커널을 슬라이딩 시켰다. 총 행 방향 2번, 열 방향 2번의 슬라이딩을 통해 2x2 크기의 행렬을 얻었다. 커널을 사용하여 합성곱 연산을 통해 나온 결과값을 특성 맵이라고 한다. 또한, 이처럼 합성곱 연산을 통해 얻은 특성 맵의 크기는 이미지의 크기보다 작다. 2-2 )..

[ML입문] week6 - 순환 신경망

1. 순환 신경망1) 순환 신경망의 정의와 작동원리이전의 합성곱 신경망과 다르게 뉴런에 자신을 참조하는 화살표, 즉 순환고리가 있다.A,B,C 데이터가 있다고 가정하고, 순환 신경망의 작동 원리를 살펴보자.A가 먼저 뉴런에 입력된다. 이에 출력값인 Oa가 생성되고, 이 Oa가 B를 처리할 때 재사용된다.순환 신경망은 앞의 샘플의 출력을 다시 사용해서 B를 계산할 때 다시 사용한다.그래서 Ob는 어느 정도 Oa에 대한 정보 일를 담고 있을 가능성이 있다.다음으로 C를 처리할 때에는 Ob를 다시 재사용해서 Oc를 계산한다.2) 타임스텝과 순환 신경망의 활성화 함수순환 신경망에서 하나의 샘플을 처리하는 하나의 단계를 타임스텝이라고 한다. 또한, 셀(순환층)에서 출력한 값을 은닉상태라고 한다. 각 뉴런에는 활성..

[ML입문] week5 - 딥러닝

6-1 인공 신경망 케라스로 MNIST 패션 데이터를 받아와 이를 분류하는 작업을 한다. train set이 매우 많아 SGD를 사용한다. from sklearn.model_selection import cross_validate from sklearn.linear_model import SGDClassifier sc = SGDClassifier(loss='log_loss', max_iter=5, random_state=42) # max_iter: 반복횟수 scores = cross_validate(sc, train_scaled, train_target, n_jobs=-1) print(np.mean(scores['test_score'])) SGDClassifier와 cross_validate 함수를 사용..

[ML입문] week4 - 비지도 학습

비지도 학습이란? 정답(target, label)이 없고 특성 데이터만 주어지는 학습 방법이다. 종류는 군집과 차원 축소로 나눌 수 있다. 1. 군집 알고리즘 군집 (클러스터) : 비슷한 패턴들을 묶어놓은 집단 1) 데이터 준비 가로 100px, 세로 100px의 사과, 파인애플, 바나나 사진을 각 100개씩 준비하여 numpy 배열로 변환한다. # !: shell 명령어 !wget https://bit.ly/fruits_300_data -O fruits_300.npy import numpy as np import matplotlib.pyplot as plt fruits = np.load('fruits_300.npy') print(fruits.shape) # (300, 100, 100) 10000 pin..

[ML입문] week3 - 분류 알고리즘(2), 트리 알고리즘

확률적 경사 하강법 확률적 경사 하강법 점진적 학습 알고리즘 중 대표적인 것은 확률적 경사 하강법(Stochastic Gradient Descent) 전체 샘플을 사용하지 않고 train set에서 random하게 단 하나의 sample을 고르는 것이다. epoch(에포크) : train시에 train set을 한 번 모두 사용하는 과정이다. train data에서 random하게 sample을 뽑아 사용한다. 대상 데이터를 섞은 후 random하게, 일반적인 GD처럼 데이터를 한 개씩 추출하여 가중치를 업데이트한다. 장점 한 번 가중치를 업데이트하는 시간이 빠르다. 메모리 소모가 적다. local minima를 회피할 수 있다(항상 맞는 말은 아님) 단점 전체 데이터셋을 반영하는 데 오래 걸린다. gl..

[ML입문] week2 - 회귀 알고리즘과 모델 규제, 분류 알고리즘(1)

1. K - 최근접 이웃 회귀 회귀 (Regression) : 임의의 숫자(target)를 예측하는 것 => 타깃을 따로 만들 필요 없이, 훈련 데이터의 특성 중 하나가 타깃값이 된다 [문제] 농어의 길이와 무게를 학습하여, 농어의 길이를 통해 무게를 예측해보자. 1) 데이터 준비 from sklearn.model_selection import train_test_split train_input, test_input, train_target, test_target = train_test_split(perch_length, perch_weight, random_state=42) K - 최근접 이웃 분류 때와 마찬가지로 사이킷런의 train_test_split을 이용해 훈련 세트와 테스트 세트를 나눈다. 이..

[ML입문] week1 - 나의 첫 머신러닝, 데이터 다루기

1. 인공지능 1) 인공지능 : 사람처럼 생각하고 추론하는, 지능이 있는 컴퓨터 시스템 알고리즘 이러한 인공지능은 기능에 따라 여러 하위범주를 가진다. 그 중 머신러닝과 딥러닝이 가장 대표적이다. 2) 머신러닝 인공지능의 하위 범주 중 하나이다. 머신러닝은 데이터를 통해 컴퓨터가 스스로 학습하고 작업을 수행하도록 한다. 다른 인공지능에 비해 소프트웨어와 관련이 있다는 점에서 차이가 있다. 대표적인 머신러닝 라이브러리는 ‘사이킷런’이다. 3) 딥러닝 머신러닝의 하위 범주 중 하나이다. 딥러닝은 머신러닝 중에서도, 인공신공망을 사용한다. 대표적인 딥러닝 라이브러리는 '텐서플로' 이다. 2. 지도 학습과 비지도 학습 지도학습과 비지도학습은 타겟 데이터, 즉 데이터의 정답를 제공하느냐를 기준으로 나뉜다. 1) ..