본문 바로가기

AI/딥러닝10

10. 포켓몬 분류 1. 포켓몬 분류  * Train: https://www.kaggle.com/datasets/thedagger/pokemon-generation-one * Validation: https://www.kaggle.com/hlrhegemony/pokemon-image-dataset kaggle.comkaggle.com  ◼ Kaggle API를 사용하여 Pokemon 데이터셋을 다운로드하고 압축을 해제       import os      os.environ['KAGGLE_USERNAME'] = 'sarahlee721'      os.environ['KAGGLE_KEY'] = 'b5dc455974daae96540089d7bcdf062a'      !kaggle datasets download -d theda.. 2024. 6. 21.
09. 전이학습 1. 에일리언 VS 프레데터 데이터셋  작업 데이터 가져오기* 캐글: https://www.kaggle.com/datasets/pmigdal/alien-vs-predator-images더보기 직접 다운로드 하기 캐글 api 가져오기: 케글 로그인 -> 계정 클릭 -> Your Profile -> Account -> API항목에 Create New Token -> kaggle.json 다운로드        Kaggle API를 위한 환경변수 설정         import os           os.environ['KAGGLE_USERNAME'] = 'username'        os.environ['KAGGLE_KEY'] = 'key'  에일리언 데이터셋을 다운로드하고 압축을 해제           .. 2024. 6. 21.
08. 간단한 CNN 모델 만들기 1.  간단한 CNN 모델 만들기   import               import torch        import torch.nn as nn        import torch.optim as optim   PyTorch의 Tensor를 생성하고 그 형태(shape)를 출력                # 배치크기 * 채널(1: 그레이스케일, 3: 컬러) * 높이 * 너비        inputs= torch.Tensor(1,1,28,28)        print(inputs.shape)torch.Size([1, 1, 28, 28])========================1x1x28x28인 4차원 텐서첫 번째 차원(batch dimension): 배치 크기(batch size)는 1두 번째 차.. 2024. 6. 20.
07. CNN 기초 1. CNN(Convolutional Neural Networks)* 합성곱 인공 신경망 * 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 붙인 형태 * 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류  1. CNN을 사용하는 이유 * 이미지 분류할 때 DNN(Deep Neural Network)의 문제점     - 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함     - 2차원 이상의 데이터가 입력되는 경우는 flatten 시켜서 한줄로 데이터를 변환 후 넣어야 함    - 이미지의 공간적/지역적 정보가 손실됨  * DNN의 문제점을 해결하기 위해 이미지를 그대로(Raw Input) 발음으로 공간.. 2024. 6. 20.
06. 비선형 활성화 함수 1. 비선형 활성화 함수(Activation Functions)* 신경망의 성능을 향상시키기 위해 사용 * 선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 때문에 신경망에서 여러 개의 선형 활성화 함수를 사용한다면 최종 출력값은 입력값과 가중치의 선형 조합으로 표현되므로 이는 입력 데이터의 비선형 관계를 표현할 수 없음 * 신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해서 비선형 활성화 함수를 사용 import               import numpy as np        import matplotlib.pyplot as plt   1. 시그모이드(Sigmoid )Sigmoid 함수는 주어진 입력에 대해 출력을 0과 1 사이의 값으로 변환하는 비선형 활성화 함  .. 2024. 6. 20.
05. 딥러닝 1. 뉴런(neuron)  1. 생물학적 뉴런* 인간의 뇌는 수십억 개의 뉴런을 가지고 있음* 뉴런은 화학적, 전기적 신호를 처리하고 전달하는 연결된 뇌신경 세포2. 인공 뉴런(Perceptron)* 1943년에 워렌 맥컬록, 월터 피츠 단순화된 뇌세포 개념을 발표 * 신경 세포를 이진 출력을 가진 단순한 논리 게이트라고 설명 * 생물학적 뉴런의 모델에 기초한 수학적 기능으로, 각 뉴런이 입력을 받아 개별적으로 가중치를 곱하여 나온 합계를 비선형 함수를 전달하여 출력을 생성 2. 퍼셉트론(Perceptron)* 인공 신경망의 가장 기본적인 형태로 1957년에 처음 소개됨 * 입력과 출력을 가진 단일 뉴런 모델을 기반 * 초기에 기계 학습 알고리즘 중 하나로 이진 분류 문제를 해결하기 위해 설계 impor.. 2024. 6. 20.
04. 데이터로더(Data Loader) 1. 데이터로더(Data Loader)데이터양이 많을 때 배치 단위로 학습하는 방법을 제공   데이터로더(DataLoader)의 역할배치 처리: 데이터를 지정된 배치 크기로 나누어 모델에 입력으로 제공합니다.셔플(shuffle): 데이터를 섞어서 모델이 데이터의 순서에 의존하지 않도록 합니다. 특히 훈련 데이터에서 사용됩니다.병렬 처리: num_workers 매개변수를 설정하여 데이터를 병렬로 로드하여 속도를 높일 수 있습니다. import               import torch        import torch.nn as nn        import torch.optim as optim        import torchvision.transforms as tranforms        i.. 2024. 6. 20.
03. 논리회귀 (단항, 다중) | 시그모이드(sigmoid) 함수 1. 단항 논리 회귀* 분류를 할 때 사용하며 선형 회귀 공식으로부터 나왔기 때문에 논리 회귀라는 이름이 붙여짐* Sigmoid 함수(Logistic 함수)를 사용하여 정확도를 높임 Sigmoid 함수예측값을 0에서 1사이 값이 되도록 만듬 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5(임계값)를 기준으로 구분   import               import torch        import torch.nn as nn        import torch.optim as optim        import matplotlib.pyplot as plt  시드값 고정             torch.manual_seed(2024)    PyTorch 텐서를 사용하여 훈련 데이터를 정의하.. 2024. 6. 19.
02. 선형 회귀(단항, 다중) | 경사하강법 1. 단항 선형 회귀 실습* 한 개의 입력이 들어가서 한 개의 출력이 나오는 구조  import               import torch # 오픈 소스 기계 학습 라이브러리 모듈        import torch.nn as nn # nn 이란? 인경신경망을 구현하기 위한 도구와 모듈제공        import torch.optim as optim # optim 이란 다양한 최적화 알고리즘 구현        import matplotlib.pyplot as plt  가격을 생성할 때 랜덤한 수 생성               # 파이썬 코드를 재실행해도 같은 결과가 나올 수 있도록 랜덤시드를 설정        torch.manual_seed(2024)   데이터 직접 만들기          # 1.. 2024. 6. 18.