본문 바로가기

Archive171

[DL] 컨볼루션 신경망, CNN 이해하기 (프로그래머스 Week9 - Day4) 추가참고자료 : https://wikidocs.net/62306 이미지 분류 등에 많이 쓰이는 CNN을 이해해보자. CNN의 구조 전체적 구조는 컨볼루션 층과, 풀링층의 반복이 된다. ( conv - relu - conv - relu - pool의 반복 등) Convolution 이후, 주요 특징을 추출하는 방식을 통해, 최종 결과값을 추출하게 된다. CNN과, Multi Layer Perceptron의 차이는 완전히 모든경우의 수를 연결하는지, 부분적으로만 연결하는지의 차이이다. 컨볼루션 연산을 틍해 분류에 더 좋은 특징들만을 추출해서 가지게 된다. 특히, CNN의 경우는 인접한 정보의 특징을 효과적으로 인식할 수 있다. 그리고 Pool을 통해 특징을 요악하고 강.. 2021. 6. 24.
[DL] Pytorch로 Layer 만들기 (프로그래머스 DevCourse Week9) 참고자료 :https://wikidocs.net/book/2788 자동미분과 Autograd import torch w = torch.tensor(2.0, requires_grad=True) y = w**2 z = 2*y + 5 z.backward() print(w.grad) #z의 미분 값에, w를 대입한다. 결과는 8. 여기서, requires_grad = True 란, 텐서에 대한 기울기를 저장한다는 의미를 뜻한다. Iris 를 통한 Layer 만들기 예제. import pandas as pd from sklearn.datasets import load_iris import torch import torch.nn as nn from torch.utils... 2021. 6. 23.
[DL] Multi Layer Perceptron, Back Propagation 감잡기 (프로그래머스 인공지능 코스 Week 9-2) 다층 퍼셉트론의 핵심 아이디어 - 은닉층의 도입 : 특징 공간의 변환 - 활성함수의 도입 : 시그모이드의 도입으로 출력을 신뢰도로 간주하게 된다. - 오류 역전파 알고리즘의 도입 : 층별로 gradient 계산 후 가중치를 갱신하기 위함 XOR 문제 XOR 문제는, 하나의 퍼셉트론, 즉 하나의 결정경계로는 구분이 불가능하지만, 2개면 충분하다. 시그모이드 함수의 도입(활성함수) 시그모이드 함수 등의 다른 활성함수는 영역을 영역으로 변환한다. 즉 , 의사 결정에 사용되는 값이 0, 1 식의 딱딱한 형태가 아닌 부드러운 형태이다. 대표적인 예시로는 다음을 들 수 있다. - 로지스틱 시그모이드 - ReLU 함수(렉티파이어) 다층 퍼셉트론의 표현 다층 퍼셉트론의 경.. 2021. 6. 22.
[DL] Pytorch Tutorial Pytorch Tutorial. 텐서의 정의 및 크기변경 등 설치 및 import !pip install torch import torch 텐서의 초기화 torch.empty(5, 3) # 임의 초기화, 5 by 3 torch.zeros(5, 3, dtype = torch.long) # 0으로 초기화, 5 by 3 torch.ones(5, 3, dtype = torch.long) # 1로 초기화, 5 by 3 텐서의 초기화(random 활용) torch.randn(5, 3) # 정규분포 기준 torch.rand(5, 3) # 0~1 사이의 균등분포 다차원 텐서도 가능함. (ex - 3차원) torch.randn(4, 3, 3) # 이 경우 3 * 3 행렬이 4층으로 쌓이는 구조가 된다. 텐서의 크기 변경.. 2021. 6. 21.
[DL] Single Layer Perceptron 사람의 신경망을 본따 만든 인경 신공망을 배워보기 시작하자. (프로그래머스 Week9 - Day1 정리) 추가참고 : 밑바닥부터 시작하는 딥러닝1 신경망의 구분 - 전방 신경망 vs 순환 신경망 : 뒤로 다시 돌아갈 수도 있을까? - 깊은 신경망 vs 얕은 신경망 : 은닉층이 얼마나 많을까? - 결정론 신경망 vs 확률론적 신경망 : 매개변수와 조건이 동일하면 완전히 결정되는가, 아니면 분포로 답이 나와 달라질 수 있는가?(불완정성 부여) Perceptron 이란? 입력 신호에 weight를 곱해, 학습시키는 가장 간단한 인공신경망 형태의 구조이다. 학습이 잘 되었다는 것의 의미는, 알맞은 가중치를 찾는 것을 의미한다. 이에 따라 최종 학습 값이, 임계치 이상일 경우 1을 주고, 아닐 경우 -1을 주는 .. 2021. 6. 21.
[Data] GridSearchCV GridSearch란? 모델을 결정해서 학습시킬 때, 모델의 하이퍼파라미터가 얼마일때가 가장 최적인지, 알기 어려운 경우가 많다. GridSearch를 통해서 최적값이 얼마인지 찾아줄 수 있다. 이의 구조에 대해 알아보고자 한다. K-fold and stratified K-fold 음? 이것부터 하는 이유는 무엇일까? 우리는 data set을 train set - validation set - test set으로 나누어서 훈련, 검증, 평가 한다. 이 과정에서 훈련셋과 검증셋의 경우는 K-fold를 활용하여 여러번 훈련 및 검증한다. 데이터셋을 K등분하여 분할하여 훈련하게 된다. 그런데, 여기서 Train / Test set은 임으로 분할하게 되는데, 만일 특정 label이 train에만 있거나 test.. 2021. 6. 14.