DL 11
-
-
평균제곱오차 MSE 오차가 클 수록 e 값이 크므로 벌점(정량적 성능)으로 활용된다. 하지만 허점이 존재한다. 경사도를 계산하면 왼쪽의 경사도가 더 크지만 더 많은 오류가 있는 상황이 더 낮은 벌점을 받았다. 교차 엔트로피 Cross Entropy 소프트맥스 함수 Softmax 출력층의 활성함수로 로지스틱 시그모이드와 softmax를 비교한다. 출력층의 변화에 따라 소프트맥스의 결과도 최대 출력에 더 가까워진다 따라서 부드러운 최대 함수로 불린다. 소프트맥스함수와 교차엔트로피 목적함수 로그우도 손실함수에서 교차 엔트로피가 최소화 됨
-
ResNet 잔류 학습 Residual Learning 개념을 사용하여 성능 저하를 피하면서 층 수를 대폭 늘린 구조이다. CNN에서 가중치 학습이 제대로 안되어 있다. 이런 부분들을 나눠서 학습시키는 것이 잔류학습이다. 잔류학습은 지름길 연결된 x를 더한 F(X) + X에 감마를 적용한다. 감마*(F(X) + X) 지름길 연결을 하는 이유 - 깊은 신경망도 최적화가 가능 단순한 학습의 관점 변화를 통해 신경망의 구조를 변화 단순 구조의 변경으로 매개변수 수에 영향이 없다. 덧셈연산만 증가하므로 전체 연산량 증가도 미비하다 - 깊어진 신경망으로 인해 정화도 개선이 가능함 - 경사소멸 문제 해결 가장 많이 쓰이는 모델이다.
-
VGGNet의 구조 작은 신경망이 좋다는 아이디어에서 시작 3*3의 작은 커널을 사용 신경망을 깊게 만든다 컨볼루션층 8 ~16개를 두어 AlexNet의 5개에 비해 2, 3배 깊어졌다. 16층의 VGGNet - 16 컨볼루션층 13층 완전신경층 3층 작은 커널의 장점 GoogLeNet 의 인셉션 모듈처럼 이후의 깊은 신경망 구조에 영향을 준다 큰 크기의 커널은 여러개의 작은 크기의 커널로 분해 될 수 있다. 이것을 통해 매개변수의 수는 줄어들고 신경망은 깊어지는 효과가 있다. VGGNet 에서는 적용실험을 했지만 최종 선택하지 않은 1*1 커널이라는 것도 있다. 가로 세로 크기가 1이지만 깊이는 원래의 것과 같다. 이것으로 인해 차원의 통합을 이뤄서 3차원을 2차원으로 축소 가능하다. 차원 축소를 거쳐..
-
AlexNet의 구조 컨볼루션층 5개와 완전연결층 3개로 이루어진 구조 8개 층에 290400 - 186624 - 64896 - 43264 - 4096 - 4096 - 1000개의 노드 배치 컨볼루션층은 200만개 FC층은 6500만개 가량의 매개변수 완전연결층에 30배 많은 매개변수가 있다. 이 이후에 등장한 CNN구조는 완전 연결층의 매개변수를 줄이는 방향으로 발전했다. 등장 당시에 GPU의 메모리 크기 제한으로 인해 GPU#1, GPU#2 로 분할하여 학습을 수행했다. 3번째 컨볼루션 층은 이 두개의 GPU 연산결과를 함께 사용한다 inter - GPU connections 컨볼루션층을 큰 보폭으로 다운샘플링한다. AlexNet은 ImageNet 이라는 대규모 사진 데이터와 GPU를 사용한 병렬처리..
-
from __future__ import absolute_import, division, print_function, unicode_literals import os import numpy as np import matplotlib.pyplot as plt import tensorflow as tf from tensorflow.keras.utils import Sequence from tensorflow.keras.utils import to_categorical import tensorflow.keras as keras from keras import models from keras import layers from tensorflow.keras.optimizers import SGD %matplotl..
-
Mnist 데이터를 다운로드 받아서 불러온다. 배치 사이즈 만큼의 데이터를 iter하고 화면에 표시한다. 이미지를 세부 묘사하면 흑백의 차이를 숫자로 표현한 것이 보인다. 흑과 백이기 때문에 2차원 벡터로 표현 가능하다. MLP의 Net함수와 forward 순방향전파를 나타낸다. 간단하게 선형 연산과 ReLU 함수로 되어있다. 이부분을 조정해서 정확도를 높일 수 있을까? 손실함수와 최적함수이다. 손실함수는 크로스 엔트로피로 나타낸다. 최적함수는 경사하강법으로 보폭은 0.1로 진행한다. 실제로 훈련데이터를 훈련시켜본다. epoch 반복값은 10으로 정했다. 최적함수의 그레디언트 값을 0으로 초기화 한다. 모델 훈련 후 출력값을 받아서 손실함수를 계산한다. 역전파하여 최적함수를 실행시킨다. 모델에 반영한다...
-
import torch import torch.nn as nn try: from torch.hub import load_state_dict_from_url except ImportError: from torch.utils.model_zoo import load_url as load_state_dict_from_url from typing import Any __all__ = ['AlexNet', 'alexnet'] model_urls = { 'alexnet': 'https://download.pytorch.org/models/alexnet-owt-4df8aa71.pth', } class AlexNet(nn.Module): def __init__(self, num_classes: int = 1000) ->..
-
컨볼루션 신경망 CNN 합성곱 신경망이라고도 한다. 시각적 영상을 분석하는 데 사용되는 다층의 피드-포워드적인 인공신경망의 한 종류이다. 영상 및 동영상 인식, 추천 시스템, 영상 분류, 의료 영상 분석 및 자연어 처리 등에 응용된다. 각 노드가 독립적으로 적용되기 때문에 병렬 분산구조이다. 합성곱 신경망은 정규화 된 버전의 다층 퍼셉트론 MLP 다층퍼셉트론 구조는 네트워크가 완전 연결된 경우 주어진 데이터에 과적합 된다. CNN은 정규화를 위해 데이터에서 계층적 패턴을 사용하고 복잡한 패턴을 간단하게 사용하여 정규화와 같은 효과를 낸다. DMLP는 학습이 느리고 과잉적합이 발생한다. CNN은 격자구조를 갖는 데이터에 적합하고, 컨볼루션 연산으로 특징을 추출한다. 컨볼루션 연산 Convolution 해당..
-
퍼셉트론 선형 분류기의 한계 XOR 문제에서 75%의 정확도 한계가 있다. 선형분리 불가능한 상황에서 일정한 양의 오류가 생긴다. 다층퍼셉트론 은닉층 Hidden Layer : 은닉층은 원래의 특징공간을 분류하는데 유리한 새로운 특징공간으로 변환한다. 시그모이드 활성함수 Sigmoid : 다층퍼셉트론은 연성 의사결정이 가능한 시그모이드 함수를 활성함수로 활용한다. 연성에서 출력값이 연속값이고, 이것을 신뢰도로 간주한다. 오류 역전파 알고리즘 Back Propagation : 역방향으로 진행하며 한 층씩 그레디언트를 계산하고 가중치를 갱신한다. 퍼셉트론 1, 2 가 모두 +1이면 A공간에 배치된다. 퍼셉트론 2개를 병렬결합하면 원래 공간을 새로운 특징공간 z로 변환 새로운 특징 공간 z에서 선형분리 가능해..