학부 강의 노트/기상 인공지능 특론 21

분류 - 개요

앙상블 방법 분류에서 가장 각광 받는 방법 이미지, 영상, 음성,NLP 영역에서 신경망ㅌㅊ에 기반한 딥러닝이 머신러닝계를 선도하고 있지만, 이를 제외한 정형 데이터의 예측 분석 영역에서는 앙상블ㅇ리 매우 높은 예측 성능으로 애용되고 있음. 앗으븡: 서로 다른/또는 같은 알고리즘을 단순히 결하한 형태이나, 일반적으로 배팅과 부스팅 방식으로 나눔. 배깅방식: 랜덤 포레스트 - 뛰어나난 예측 선응 상대적으로 빠른 수행 시간, 유연성 최근에는 부스팅 방식으로 발전하고 있음. 그래디언트 부스팅(효쇠) 뛰어난 예측 성능이지만, 시간이 너무 오래 걸림따라서 최적화 모델 튜닝이 어려움 XgBoost , lightGBM 등 기존 그래디언트 부스팅의 예측 성능을 한단계 발전시키ㅁ녀서 수행시간을 단축시킨 알고리즘 정형 데이..

신경망의 구조

신경망 구조 1. 네트워크(또는 모델)를 구성하는 층 2. 입력 데이터와 그에 대응하는 타깃 3. 손실함수: 예측과 타깃을 비교하여 모델의 예측이 기대값에 얼마나 잘 맞는지 측정하는 손실값을 만듬 4. 학습 진행방식을 결정하는 옵티마이저 모델: 층의 네트워크 딱 맞는 네트워크 구조를 찾는 것은 과학보다 예술. 연습 필요. >>> from keras import models >>> from keras import layers >>> model = model.Sequential() Sequential() 모델의 경우, 단일 입력, 단일 출력인 경우 사용 다중입력 데이터 + 여러 딥러닝 모듈 인 경우 함수형 API 사용 모델 설정 - 층 설정 입력층, 은닉층, 출력층 등의 딥러닝의 구성 단위 하나 이상의 텐서..

신경망의 구조 - MNIST 손글씨 예제로 살펴보는

MNIST 손글씨 딥러닝 예제를 통한 신경망 구조 설명 1. 훈련/테스트 세트 구성 >>> import tensorflow as tf >>> from kerase.datasets import mnist >>> mnist = tf.keras.datasets.mnist >>> (x_train, y_train), (x_test, y_test) = mnist.load_data() # train / test set을 알아서 나눔 # mnist 데이터는 0~255 범위의 데이터 # 이를 0~1 사이로 맞춰주기 위해서 255로 나눔. # 딥러닝은 0~1 사이로 input 데이터의 범위를 해줘야. >>> x_train, x_test = x_train / 255.0, x_test / 255.0 >>> x_train.sh..

구글 플레이그라운드 사용해 보기

구글 플레이그라운드에 접속 https://playground.tensorflow.org Tensorflow — Neural Network Playground Tinker with a real neural network right here in your browser. playground.tensorflow.org 1. 문제유형 선택 (먼저, 선형 분리되는 작업 선택) 2. 훈련/테스트 데이터 비율 설정 3. 입력 특징 선택 4. 학습율 설정: 학습속도 결정 5. 활성화함수 선택 6. 학습시작 7. 선형분리 안되는 작업에 은닉층 추가해서 실행해서 분류 도표 차이 보기

넘파이(NumPy) 요약

파이썬 리스트는 활용도가 높지만, 빅데이터 처리에는 충분하지 않다. 파이썬의 리스트에서는 데이터가 비연속적인 위치에 저당되므로 대량의 데이터 처라에 불리함. C언어 스타일의 2차원 배열은 데이터들이 연속적인 위치에 저장되어 효율적으로 처리할 수 있음. 왜냐하면 연속적으로 데이터가 저장되어 있어야 다음 데이터를 찾기 쉽기 때문. NumPy(Numerical Python): 과학/공학 분야에서 사용되는 파이썬 라이브러리 넘파이 API는 Pandas, SciPy, Matplotbli, scikit-learn 등의ㅐ 패키지에서 사용됨. 훈련샘플은 2차원, 3차원 다차원 행렬안에 저장됨. 행렬에서 삭제, 분리, 추가 등의 조작은 반드시 넘파이를 사용 넘파이 불러오기 >>> import numpy as np 배열 ..

딥러닝 모델링 결과 예(epochs, seed 변경)

epochs=5 batch_size=5 np.random.seed(1) epochs=5 batch_size=5 np.random.seed(7820) gap-filling with mean values. epochs=20 batch_size=5 np.random.seed(7820) from keras.models import Sequential from keras.layers import Dense classifier = Sequential() classifier.add(Dense(units = 13, activation = 'relu')) classifier.add(Dense(units = 1, activation = 'sigmoid')) classifier.compile(optimizer = 'adam..

머신러닝 - 용어정리

분류와 회귀에서 사용하는 용어 정리 샘플(입력): 학습 모델에 들어갈 하나의 데이터 예측(출력): 모델 결과 값 타깃(정답): 모델이 완벽하게 예측해야 하는 값 참값(꼬리표, annotation): 일반적으로 사람에 의해 수집된 데이터셋에 대한 모든 타깃. 예측오차(손실값): 모델의 예측과 타깃 사이의 (거리) 차이값 클래스: 분류 문제에서 선택할 수 있는 레이블의 집합. 예) 고양이-강아지 분류 문제에서 클래스는 "고양이"와 "강아지" 2개 레이블: 분류

머신 러닝 - 분류

1. 지도 학습 가장 흔한 학습 방법 주어진 샘플 데이터의 (사람이 만든)레이블 또는 꼬리표(annotation)에 입력 데이터를 매핑하는 방법을 학습시킴 대부분 분류와 회귀 문제로 구성됨 예) 구문 트리 예측, 물체 감지 2. 비지도 학습 타깃없이 입력 데이터의 변환을 찾는 학습방법 데이터 시각화, 데이터 압축, 데이터 노이즈 제거, 데이터 상관관계를 더 잘 이해하기 위해 사용 지도학습 문제를 풀기 전에 데이터셋을 잘 이해하기 위해 사용하는 필수 단계로 이용되기도 함 예) 차원축소, 군집 3. 자기 지도 학습(self-supervised learning) 사람이 만든 레이블을 사용하지 않음으로 학습 과정에 사람이 개입하지 않는 지도 학습. 예) 오토인코더(autoencoder), 비디오 다음 프레임 예..

딥러닝 모델 설계 기초 - MNIST 손글씨 이미지 분류 예제

MNIST 데이터베이스 (Modified National Institue of Standards and Technology database) 손글씨 이미지 데이터셋 0에서 9까지 10가지로 분류될 수 있는 손글씨 숫자 이미지 70,000개 각 이미지는 28×28 픽셀로 구성 각 픽셀은 아래와 같이 0~255 사이의 숫자 행렬로 표현됩니다. [[ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0..

신경망에서 딥러닝으로 - 기울기 소실 문제

기울기 소실 문제(vanishing gradient) 출력층에서 은닉층을 역방향으로 하나씩 진행하며, 각 층(은닉층, 입력층)의 가중치를 수정하는 방법 가중치 수정을 위해서는 미분값(기울기)가 필요 층의 갯수가 늘어나면, 역전파를 통해 전달되는 기울기 값이 점점 작아져, 맨 처음층(입력층)까지 도달하지 않는 문제가 발생... 기울기 소실 문제(vanishinig gradient) 활성화 함수(시그모이드 함수)의 특징 때문에, 여러 층을 거칠 수록 기울기가 사라져서 가중치 수정이 어려워짐. 활성화 함수 1. Sigmoid 함수 미분하면 최대치가 < 1.0 따라서, 계속 곱하면 0에 수렴.... 기울기 소실 발생 2. tanh 함수 시그모이드 함수 확장형 [-1,1] 1보다 작은 값이 존재하므로, 기울기 소..

1 2 3