본문 바로가기

전체 글

(97)
포켓몬분류 & EfficientNet (2024-06-24) 1. 포켓몬 분류* Train: https://www.kaggle.com/datasets/thedagger/pokemon-generation-one* Validation: https://www.kaggle.com/hlrhegemony/pokemon-image-dataset import os os.environ['KAGGLE_USERNAME'] = '캐글 닉네임'os.environ['KAGGLE_KEY'] = '캐글 키'  # train data!kaggle datasets download -d thedagger/pokemon-generation-one !unzip -q /content/pokemon-generation-one.zip  # validation data!kaggle datasets downl..
Transfer Learning, Image Agumentation (2024-06-24) 1. 에일리언 vs 프레데터 데이터셋* [데이터셋](https://www.kaggle.com/datasets/pmigdal/alien-vs-predator-images)* 캐글 로그인 -> 우측 상단의 계정을 클릭 -> Settings-> Account -> API Create New API Token 클릭 -> Kaggle.json 파일이 다운로드 됨* {"username":"dumbo3720","key":"31176eaeb35c4ac2457896d156107c55"} import os os.environ['KAGGLE_USERNAME'] = '본인 캐글 이름'os.environ['KAGGLE_KEY'] = '본인 키' # kaggle 데이터셋 우측 상단 ...에서 copy api command!kag..
간단한 CNN model 만들기 (2024-06-20) import torchimport torch.nn as nnimport torch.optim as optim    # 배치크기 * 채널(1 : 그레이 스케일 / 3 : 컬러) * 너비 * 높이inputs = torch.Tensor(1, 1, 28, 28)print(inputs.shape)   # 첫번째 Conv2Dconv1 = nn.Conv2d(in_channels = 1, out_channels=32, kernel_size = 3, padding ='same')out = conv1(inputs)print(out.shape) # 첫번째 MaxPool2Dpool = nn.MaxPool2d(kernel_size = 2)out = pool(out)print(out.shape)  # 두번째 Conv2Dconv2..
CNN(Convolutional Neural Networks) (2024-06-20) 1. CNN(Convolutional Neural Networks)* 합성곱 인공 신경망* 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 붙인 형태* 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류    2. Convolution 연산* 컨볼루션 연산을 진행하면 출력 텐서의 크기가 작아짐   * 패딩 : 입력값 주위로 0을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지   * 2D 컨볼루션 : 컬러이미지에서는 2D 컨볼루션 연산을 수행   *  풀링 : 중요한 특징을 추출하고 차원을 축소하기 위해 풀링 연산을 사용. MaxPool 또는 AvgPool사용 * 스트라이드 : 필터를 적용하..
Activation Functions, Backpropagaion(2024-06-20) 1. 비선형 활성화 함수 (Activation Funtions) * 신경망의 성능을 향상시키기 위해 사용* 선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 때문에 신경망에서 여러개의 레이어를 사용한다면 최종 출력값은 입력 값과 가중치의 선형 조합으로 표현되므로 입력 데이터를 비선형 관게를 표현할 수 없음* 신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해 비선형 활성화 함수가 필요하다   2. 역전파(Backpropagaion)* 1969년 민스키 교수님 XOR는 "지금의 기술로 풀 수 없다"라는 것을 수학적으로 증명했다* 1974년 Paul Werbos에 의해 박사 논문에서 해결됨  * W, b를 이용해 주어진 입력을 가지고 출력을 만들어 낼 수 있음 -> 출력이 우리가 ..
neuron, Perceptron (2024-06-20) 1. 뉴런(neuron)* 인간의 뇌는 수십억 개의 뉴런을 가지고 있음* 뉴런은 화학적, 전기적 신호를 처리하고 전달하는 연결된 뇌 신경 세포  1-2. 인공 뉴런* 1943년에 워렌 맥컬록, 월터 피츠가 단순화된 뇌 세포 개념을 발표* 신경 세포를 이진 출력을 가진 단순한 논리 게이트라고 설명* 생물학적 뉴런의 모델에 기초한 수하적 기능으로 각 뉴런이 입력을 받아 개별적으로 가중치를 곱하여 나온 합계를 비선형 함수를 전달하여 출력을 생성   2. 퍼셉트론(Perceptron)* 인공 신경망의 가장 기본적인 형태로 1957년에 처음 소개됨* 입력과 출력을 가진 단일 뉴런 모델을 기반으로 만듬* 초기에 기계 학습 알고리즘 중 하나로 이진 분류 문제를 해결하기 위해 설계     2-1. 논리 회귀(단층 퍼셉..
Data Loader(2024-06-20) 1. 데이터 로더(Data Loader)* 데이터 양이 많을 때 배치 단위로 학습하는 방법을 제공     2. 손글씨 인식 모델 만들기 import torchimport torch.nn as nnimport torch.optim as optimimport matplotlib.pyplot as pltfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_split device = 'cuda' if torch.cuda.is_available() else 'cpu'print(device)  digits = load_digits()X_data = digits['data']y_data = digits['target..
Pytorch로 구현한 논리회귀 (2024-06-20) 미완성 1. 단항 논리 회귀(Logistic Regression)* 분류를 할 때 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리회귀라는 이름이 붙여짐  2. 시그모이드(Sigmoid) 함수* 예측값을 0에서 1사이의 값으로 되도록 만듦* 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5(임계값)를 기준으로 구분   import torchimport torch.nn as  nnimport torch.optim as optimimport matplotlib.pyplot as plttorch.manual_seed(2024)  x_train = torch.FloatTensor([[0], [1], [3], [5], [8], [11], [15], [20]])y_train = torch.FloatTens..