ML 67

Resnet 리뷰

논문 핵심 요약 www.youtube.com/watch?v=671BsKl8d0E shortcut connection or skip connection -->추가적인 파라미터는 필요 없다. 앞서 학습했던 정보를 가져오고 그대로 가져오고 추가적으로 F를 더해주겠다는 것이다. 잔여 한 정보인 F만 추가적으로 학습시켜주는 형태 전체를 다 학습하는 경우보다 훨씬 쉽다. H(x)는 개별적으로 학습을 진행할 필요가 있어서 수렴 난이도가 높아지게 된다. 반면에 우측 네트워크는 학습했던 정보를 가져오고 추가적으로 학습이 필요한 부분만 학습시키면 된다. 동일한 답을 도출한다고 하더라도 F를 학습시키는것이 더 쉽다. 매번 새로운 맵핑 값들에 대해서 학습 하는 대신 4. Experiments 1000의 클래스로 구성된 [Im..

ML 2021.02.25

ImageFolder [폐렴 분류해보기]

오랜만에 즐거운 machine learning 시간 데이터 셋이 필요하기 때문에 Kaggle에서 X-ray 데이터 셋을 다운로드 받아옵니다. www.kaggle.com/paultimothymooney/chest-xray-pneumonia Chest X-Ray Images (Pneumonia) 5,863 images, 2 categories www.kaggle.com 우한 폐렴 데이터도 준비했습니다. 우리는 colab을 사용할것이기 때문에 데이터 셋을 구글 드라이브에 올려주도록 합시다. 실습 드가자 드가자 import torchvision from torchvision import transforms from torch.utils.data import DataLoader 토치 비전 라이브러리와 데이터 로더..

ML 2021.02.18

CNN[Convolutional Neural Network]

convolution이란 무엇인가? •2D Convolution •주어진 filter로 입력 영상에 Convolution하여 출력 영상을 얻어내는 과정 •딥러닝에서는 해당 filter를 하나의 ‘가중치’로 보고 학습시키는 대상이 됨 •RGB Convolution •컬러 이미지는 R,G,B 3개의 이미지로 구성됨 •해당 이미지를 Convolution하기 위해서는 3개의 필터를 사용하여 1개의 Output을 가지는 것이 일반적 •Multi Channel Convolution •1개의 층에서 여러 Convolution 출력 값을 도출해내기 위해 여러 Filter를 사용하여 Convolution 실시 Convolution을 왜 사용하는가? CNN은 왜 잘 작동하는가? 1.Convolution을 사용하면 연산량이..

ML 2021.02.11

Restricted Boltzmann Machine(RBM)

RBM은 Generative Model로 확률밀도함수를 모델링하는것이 목표이다. 확률밀도함수를 알면 무엇을 할 수 있는가? 내부적인 연결이 없는 볼츠만 머신이라고 생각할 수 있으며 조건부 확률을 구하기 수월하다. Energy라는 새로운 개념을 사용한다 조건부확률은 위와 같은 과정으로 구할 수 있다. hidden layer를 1로 샘플링할지 0으로 샘플링할지 조건부확률을 통해서 구할 수 있다. RBM은 Backward를 통해 샘플링한 데이터와 원래 데이터의 차이를 좁혀가는 방식으로 학습한다.

ML 2021.01.30

퍼셉트론(perceptron)

Percepron이란 무엇인가? 입력 x가 들어왔을 때 입력 x 들의 가중치를 곱하고 가중치들의 합과 바이어스를 더해서 아웃풋을 만든다 활성화 함수를 사용해서 최종 결과가 나온다 사전적 의미에서 perceptron은 단일 퍼셉트론을 의미하곤 한다. 다층 퍼셉트론은 MLP로 불리게 되는데 XOR 같은 문제를 분류하기 위해서 MLP가 필요하게 된다. linear classification linear classifier를 위해서 만들어진 모델이다. 두 가지 클래스가 있을 때 선형적으로 구별할 수 있는 classifier AND OR XOR Single neural network의 한계점 XOR 게이트의 경우 single neural network로는 분류를 할 수 없다. 한 개의 선으로는 XOR를 구분할 수..

로지스틱 회귀(Logistic regression)

로지스틱 회귀 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계 기법이다. 로지스틱 회귀의 목적은 일반적인 회귀 분석의 목표와 동일하게 종속 변수와 독립 변수간의 관계를 구체적인 함수로 나타내어 향후 예측 모델에 사용하는 것이다. 이는 독립 변수의 선형 결합으로 종속 변수를 설명한다는 관점에서는 선형 회귀 분석과 유사하다. 하지만 로지스틱 회귀는 선형 회귀 분석과는 다르게 종속 변수가 범주형 데이터를 대상으로 하며 입력 데이터가 주어졌을 때 해당 데이터의 결과가 특정 분류로 나뉘기 때문에 일종의 분류 (classification) 기법으로도 볼 수 있다. 흔히 로지스틱 회귀는 종속변수가 이항형 문제(즉, 유효한 범주의 개수가 두개인 경우)를 지칭할 때 사용된다. 이외에, 두..

ML 2021.01.15

모두의 딥러닝 시즌2 [PyTorch] Lab-01-2 Tensor Manipulation 2

view 함수 view 함수를 사용하면 행렬의 형태를 바꿔줄 수 있다. Squeeze 스퀴즈는 쥐어 짜는것이다. 뷰함수를 사용한것과 같다. 스퀴즈를 사용하면 디멘션의 엘리멘트 개수가 1인 경우에 없애주게 된다. ft.squeeze(dim=0) 하면 효과가 없다. ft.squeeze(dim=1) 하면 동일한 효과를 얻는다 Unsqueeze Unsqueeze는 스퀴즈의 반대로 디멘션을 꼭 명시해줘야 한다. 원하는 디멘션에 1을 넣는다 뷰를 사용하는것과 같은 결과를 얻을 수 있다. 2차원 행렬에 적용시켜 봤을 때 Type Casting 텐서의 타입을 바꿔 주겠다. byte는 이진으로 저장한다 조건문을 실행했을 때 Concatenate 이어 붙힌다. 두개의 텐서를 이어 붙힌다. 디멘션 1=> 두번째 디멘션이 늘..

모두의 딥러닝 시즌2 [PyTorch] Lab-01-1 Tensor Manipulation 1

모든 데이터는 텐서로 표현할 수 있다. 넘파이리뷰 1D Array with NumPy 우선 넘파이를 임포트 해줘야 한다. import numpy as np import torch print('Rank of t: ', t.ndim) print('Shape of t: ', t.shape) 랭크가 의미하는것은 텐서의 차원을 의미하고 1차원으로 나열했기 때문에 랭크를 조회해보면 1로 결과가 나올것이다. shape는 몇 개의 열이 있는가를 조회할 수 있다. print('t[0] t[1] t[-1] = ', t[0], t[1], t[-1]) # Element print('t[2:5] t[4:-1] = ', t[2:5], t[4:-1]) # Slicing print('t[:2] t[3:] = ', t[:2], t[3..