전체 글
-
합성곱 신경망 | 합성곱Deep Learning/밑딥1 2021. 7. 5. 02:20
fully connected layer의 문제점 이미지를 이동, 확대, 회전과 같은 변형에 취약 고해상도 이미지를 입력할 경우 파라미터 수가 너무 많아진다. → 막대한 계산비용, 오버피팅 시각 피질의 구조 1981년 노벨 생리의학상은 시각 피질에 대한 연구에 수여함 각각의 뉴런마다 반응하는 부분이 다르다 합성곱 신경망은 이러한 특징을 이용하여 구현한다. 행렬의 합성곱 Filter : 3 x 3 Padding : 1 stride : 1 위의 그림과 같이 합성곱 연산은 입력 데이터에 Filter를 적용한다. Kernel이라고 부르기도 한다. 각 요소마다 필터와 이미지를 곱하고 총합을 구하여 출력을 낸다. 합성곱 연산을 수행하기 전에 입력 데이터 주변을 0으로 채우기도 하는데 이를 Padding 이라 한다. ..
-
학습 관련 기술 : 가중치 초기값Deep Learning/밑딥1 2021. 6. 25. 23:52
가중치 초기값의 설정 가중치 초기값을 잘못 설정 할 경우 생기는 문제점 가중치의 표준편차를 매우 크게 잡을경우 가중치를 평균이 0, 표준편차가 1인 정규분포로 초기화할 때의 각층의 활성화값 분포 활성화 값이 0과 1로 치우친다. 0과 1로 치우치면 그 미분값이 0에 가까워 진다. 0에 가까워진 값을 계속해서 역전파를 해 나가면 값이 계속 작아져 Vanishing Gradient Problem이 발생한다. 가중치의 표준편차를 매우 크게 잡을경우 가중치를 평균이 0, 표준편차가 0.01인 정규분포로 초기화할 때의 각층의 활성화값 분포 활성화 값이 가운데에 몰리게 된다. 표준편차가 매우 작으면 가중치의 값들이 거의 비슷하게 된다. 같은 가중치값으로 학습을 할 경우 같은 값을 출력함 100개의 뉴런으로 이루어진..
-
PyTorch | DNNDeep Learning/PyTorch 2021. 6. 20. 03:50
DNN(Deep Neural Network) Fashion MNIST 데이터셋을 심층 신경망으로 분류해보자. Fashion MNIST 필요한 모듈 from torchvision import datasets, transforms, utils from torch.utils import data import matplotlib.pyplot as plt import numpy as np torch.utils.data : 데이터셋을 불러오고 자르고 섞는데 쓰는 도구들이 들어있는 모듈 torchvision.datasets : 데이터셋의 모음 torchvision.transforms : 이미지 데이터셋에 쓸 수 있는 여러 가지 변환 필터를 담고 있는 모듈 torchvision.utils : 이미지 데이터를 저장하고 ..
-
[CHAPTER 15] 딥러닝 | TensorFlowDeep Learning/인공지능 입문 코딩 2021. 6. 16. 23:10
인간은 어떻게 생각하나? Dendrite : 이웃 뉴런에서 전기 신호를 받는다. Synapse : 다른 뉴런과 Dendrite의 연결 부위에 있다. 전기 신호의 세기를 재조정한다. Cell body(Soma) : Dendrite로부터 받은 여러 전기신호들을 모두 합친다. Axon : Soma의 전위가 일정 이상이 되면 이웃 뉴런으로 전기 신호를 보낸다. 인간의 뇌는 뉴런이라는 수없이 많은 신경세포가 다른 신경세포와 연결되어 있고, 뉴런들 끼리 화학적 신호를 주고 받는다. 이러한 뉴런이 1000억개 가량 있다고 한다. 인간의 뇌를 모방하여 만든 알고리즘이 바로 퍼셉트론이다. 퍼셉트론에 대해 따로 정리해 놓은 글이다. https://pintelligence.tistory.com/2?category=93237..
-
Pytorch | ANNDeep Learning/PyTorch 2021. 6. 12. 20:28
인공 신경망 (ANN) 인간의 뇌, 혹은 신경계의 장동 방식에서 영감을 받음 pytorch로 ANN 구현해 보자! 전체 코드 import torch import numpy as np from sklearn.datasets import make_blobs import matplotlib.pyplot as plt # 데이터셋 생성 n_dim = 2 x_train, y_train = make_blobs( n_samples=80, n_features=n_dim, centers=[[1, 1], [1, -1], [-1, 1], [-1, -1]], shuffle=True, cluster_std=0.3 ) x_test, y_test = make_blobs( n_samples=20, n_features=n_dim, ce..
-
[CHAPTER 14] Machine LearningDeep Learning/인공지능 입문 코딩 2021. 6. 10. 21:01
기계 학습(Machine Learning) 기계학습(Machine Learning)은 인공 지능의 한 분야로 컴퓨터에 학습 기능을 부여하기 위한 연구 분야이다. '스스로 학습' 한다는 점이 가장 큰 특징이다. 기계 학습의 종류 지도 학습(supervised learning) 컴퓨터는 사람에 의해 주어진 예제와 정답을 제공받는다. 입력을 출력에 매핑하는 일반적인 규칙을 찾아 학습한다. ex) 강아지와 고양이의 이미지를 제공하고 어떤 데이터가 강아지인지 고양이인지 사람이 알려준다. 자율 학습(unsupervised learning) 외부에서 정답(레이블)이 주어지지 않고 학습 알고리즘이 스스로 입력에서 어떤 구조를 발견하는 학습이다. 자율 학습의 대표적인 것이 클러스터링(clustering)이다. 아래의 데..
-
[CHAPTER 13] OpenCVDeep Learning/인공지능 입문 코딩 2021. 6. 6. 16:28
이미지를 다루는 모듈, OpenCV에 대해 살펴보자 이미지 읽기 cv2.imread() 함수를 사용해 이미지를 읽고 cv2.imshow() 함수를 사용해 이미지를 그릴 수 있다. import cv2 img_gray = cv2.imread('../data/mandrill.png', cv2.IMREAD_GRAYSCALE) img_color = cv2.imread('../data/mandrill.png', cv2.IMREAD_COLOR) cv2.imshow('grayscale', img_gray) cv2.imshow('color', img_color) cv2.waitKey(0) # 사용자 입력을 기다림 cv2.destroyAllWindows() # 모든 창을 없애고 프로그램 종료 합성사진 img1, im2를 ..
-
PyTorch | 이미지 복원Deep Learning/PyTorch 2021. 6. 4. 23:59
문제 weird_function() 함수는 이미지를 오염시키는 함수이다. 어떤 이미지에 weird_function() 함수를 적용 시켜 이미지가 오염되어 원본을 알아볼 수 없게 되었다. 이미지를 복원해 보자. 이미지 다운로드 링크 : https://github.com/keon/3-min-pytorch/raw/master/03-%ED%8C%8C%EC%9D%B4%ED%86%A0%EC%B9%98%EB%A1%9C_%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94_ANN/broken_image_t.p 접근법 원본 이미지와 크기가 같은 random_tensor를 생성한다. 원본 이미지에 weird_function() 함수를 적용한 이미지와 random_tensor에 weird_function() 함..