전체 글

전체 글

    [REACT] JSX

    import logo from './logo.svg'; import './App.css'; //App이라는 컴포넌트 만들어주는 코드 function App() { //함수 컴포넌트 //프로젝트에서 컴포넌트 렌더링하면(보여준다는 의미) 함수에서 반환하고 있는 내용 나타냄 //JSX라고 부름 return ( Edit src/App.js and save to reload. Learn React ); } export default App; 이런 형식으로 작성한 코드는 브라우저에서 실행되기 전에 코드가 번들링되는 과정에서 바벨을 사용하여 일반 자바스크립트 형태의 코드로 변환. 매우 편하게 UI 렌더링 가능 function App() { //함수 컴포넌트 //프로젝트에서 컴포넌트 렌더링하면(보여준다는 의미) 함수에..

    딥러닝 과적합 문제, 성능 저하 문제, 경사 하강법 유형, 기울기 소실과 폭주

    딥러닝 과적합 문제, 성능 저하 문제, 경사 하강법 유형, 기울기 소실과 폭주

    Overfitting Problem 딥러닝에서 활성화 함수가 적용된 은닉층 개수가 많을수록 데이터 분류가 잘 된다. 하지만 훈련데이터를 과하게 학습하여 과적합이 발생될 수 있다. 예측 값과 실제 값 차이인 오차가 감소하지만 , 검증 데이터에 대해서는 오차가 증가하는 것이다. 과적합을 방지하는 방법에는 무엇이 있을까? 1. 데이터의 양을 늘린다 만약 데이터의 양이 적을 경우에는 의도적으로 기존의 데이터를 조금씩 변형하고 추가하여 데이터의 양을 늘리는 Data Augmentation을 적용하기도 한다. 이미지의 경우에 이미지를 돌리거나 노이즈를 추가하는 등의 방법으로 데이터를 증식시킴 2. 모델의 복잡도를 줄인다 ex) 선형 레이어(linear layer)의 수를 줄임 3. 가중치 규제 적용 L1 규제 : ..

    퍼셉트론과 딥러닝, 활성화 함수, 손실 함수, 순전파와 역전파

    퍼셉트론과 딥러닝, 활성화 함수, 손실 함수, 순전파와 역전파

    들어가기 전에, *하이퍼 파라미터와 매개변수의 차이점 하이퍼 파라미터 - 사용자가 직접 정해줄 수 있는 변수 ex) 경사하강법에서 learning rate, 딥러닝에서 은닉층의 수, 뉴런의 수, 드롭아웃 비율 매개변수 - 모델이 학습하는 과정에서 얻어지는 값 , 기계가 훈련을 통해서 바꾸는 변수. 훈련용 데이터로 훈련을 모두 시킨 모델은 검증용 데이터를 사용하여 정확도를 검증하며 하이퍼 파라미터를 튜닝한다. 또한 이 모델의 매개변수는 검증용 데이터로 정확도가 검증되는 과정에서 점차 검증용 데이터에 점점 맞추어진다. 하이퍼 파라미터 튜닝이 끝났다면, 검증용 데이터가 아닌 새로운 데이터로 모델에 대한 평가를 진행한다. 하나의 데이터, 하나의 행을 샘플이라고 부름. 퍼셉트론 오늘날 인공 신경망에서 이용하는 구..

    MNIST 분류 by softmax regression

    MNIST 분류 by softmax regression

    import torch import torchvision.datasets as dsets import torchvision.transforms as transforms from torch.utils.data import DataLoader import torch.nn as nn import matplotlib.pyplot as plt import random random.seed(777) torch.manual_seed(777) training_epochs = 15 batch_size = 100 mnist_train = dsets.MNIST(root='MNIST_data/', train=True, transform=transforms.ToTensor(), download=True) mnist_test =..

    SoftMax Regression

    SoftMax Regression

    소프트맥스 회귀 선택지 개수만큼의 차원을 가지는 벡터 생성, 그 벡터가 각 벡터의 모든 원소 합이 1이 되도록 원소들의 값 변환 시키는 어떤 함수 지니게 만들어야함. 분류하고자 하는 클래스가 k개일 때, k차원의 벡터를 입력 받아서 모든 벡터 원소의 값을 0과 1 사이의 값으로 값 변경 후에 다시 k개의 벡터 리턴. 소프트맥스 함수의 입력으로 사용되는 벡터는 벡터의 차원이 분류하고자 하는 클래스 개수가 되어야 하므로 가중치 연산을 통해서 3차원 벡터로 변환되어야 함. 이때 가중치 곱을 진행한다. 이러한 과정으로 소프트맥스 함수의 입력으로 바꾼다. 오차 계산은 어떻게 할까? 그 전에 소프트맥스 함수의 출력은 어떠한 형태를 띄고 있는지 확인 해야한다. 소프트맥스 함수의 출력은 분류하고자 하는 클래스 개수만큼..

    Logistic Regression

    Logistic Regression

    logistic regression : Binary Classification을 풀기 위한 대표적인 알고리즘 로지스틱 회귀의 가설 그래프는 S자 모양. 이러한 관계를 표현하기 위한 가설 : H(x) = f(Wx + b) 이때 시그모이드 함수 f를 사용한다. *cf) Sigmoid 함수 출력값을 0과 1 사이 값으로 조정 -> 분류 작업에 사용 가능 W값이 클 수록 경사가 커지고 W가 작아지면 경사가 작아짐. b값에 따라 그래프가 좌,우로 이동한다. 로지스틱 회귀 cost fuction 선형회귀와 같이 MSE를 사용하면 안된다. 왜? 비용함수를 미분하면 심한 비볼록 형태 그래프 나옴. 이러한 구불구불한 형태의 그래프에 경사 하강법을 사용할 경우 문제점 -> 경사 하강법이 오차가 최솟값이 되는 구간에 도착했..