Python 103

2024-06-24 2. 자연어 처리 프로젝트 진행 순서, 3.전처리 실습

1. 문제 정의 문제의 대한 솔루션이 있어야 하고, 명확하고 구체적일수록 알맞는 자연어처리 기술을 찾을 수 있음     2. 데이터 수집 및 분석다양한 학습데이터를 수집하기 위해 공개된 데이터셋, 유료 데이터셋 또는 웹 크로링을 사용하여 수집 사이트: https://paperswithcode.com/datasets?mod=texts&task=question-answering Papers with Code - Machine Learning Datasets286 datasets • 138532 papers with code.paperswithcode.com웹크로링을 통해 데이터를 수집 했다면 EDA(탑색적 데이터 분석) 및 분석을 통해 데이터를 철저하게 검증해야함레이블이 필요하다면 수집한 데이터에 레이블을 ..

2024-06-24 1. 자연어 처리 개요

1. 자연어(Natural Language Processing, NLP)프로그래밍 언어와 같이 인공적으로 만든 기계언어와 대비되는 단어로, 우리가 일상에서 주로 사용하는 언어 1. 자연어 처리컴퓨터가 한국어나 영어와 같은 인간의 자연어를 읽고 이해할 수 있도록 돕는 인공지능의 한 분야자연어에서 의미 있는 정보를 추출하여 활용기계가 자연어의 의미를 이해하게 함기계가 사람의 언어로 소통할 수 있게 함2. 자연어처리의 활용문서 분류, 스팸 처리와 같은 분류 문제부터 검색어 추천과 같은 추천기능, 음성인식, 질의 응답, 번영 등의 다양한 분야에서 사용되고 있음반복 업무 자동화검색 효율 향상 및 검색 엔진 최적화대규모 문석 분석 및 정리소셜 미디어 분석3. 용어 정리자연어 이해(Natural Language Un..

2024-06-21 22. 포켓몬 분류

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..

Python/딥러닝 2024.06.21

2024-06-21 21. 전이학습

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'  에일리언 데이터셋을 다운로드하고 압축을 해제              ..

Python/딥러닝 2024.06.21

2024-06-20 20. 간단한 CNN 모델 만들기

간단한 CNN 모델 만들기 실습 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 = ..

Python/딥러닝 2024.06.20

2024-06-20 19. CNN 기초

1. CNN(Convolutional Neural Networks)합성곱 인공 신경망전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 붙인 형태컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류 1-1. CNN을 사용하는 이유이미지 분류할 때 DNN(Deep Neural Network)의 문제점일반적인 DNN은 1차원 형태의 데이터를 사용해야 함2차원 이상의 데이터가 입력되는 경우는 flatten 시켜서 한줄로 데이터를 변환 후 넣어야 함이미지의 공간적/지역적 정보가 손실됨CNN은 이미지를 그대로(Row Input)받음으로 공간적/지역적 정보를 유지 1-2. 이미지 데이터컬러 이미지는 3개의 채널에서 이루어진 텐..

Python/딥러닝 2024.06.20

2024-06-20 18. 비선형 활성화 함수

1. 비선형 활성화 함수(Activation Functions)신경망의 성능을 향상시키기 위해 사용선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 때문에 신경망에서 여러 개의 레이어를 사용한다면 최종 출력값은 입력 값과 가중치의 선형 조합으로 표현되므로 입력 데이터의 비선형 관계를 표현할 수 없음신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해 비선형 활성화 함수가 필요 1-1. 시그모이드import numpy as npimport matplotlib.pyplot as pltdef sigmoid(x):    return 1 / (1 + np.exp(-x))x = np.arange(-5.0, 5.0, 0.1)y = sigmoid(x)plt.plot(x, y)plt.plot([..

Python/딥러닝 2024.06.20

2024-06-20 17. 딥러닝

1. 뉴런(neuron) 1-1. 생물학적 뉴런인간의 뇌는 수십억 개의 뉴런을 가지고 있음뉴런은 화학적, 전기적 신호를 처리하고 전달하는 연결된 뇌신경 세포 1-2. 인공 뉴런1943년에 워렌 맥컬록, 월터 피츠가 단순화된 뇌세포 개념을 발표신경 세포를 이진 출력을 가진 단순한 논리 게이트라고 설명생물학적 뉴런의 모델에 기초한 수학적 기능으로 각 뉴런이 입력을 받아 개별적으로 가중치를 곱하여 나온 합계를 비선형 함수를 전달하여 출력을 생성 2. 퍼셉트론(Perceptron)인공 신경망의 가장 기본적인 형태로 1957년에 처음 소개됨입력과 출력을 가진 단일 뉴런 모델을 기반초기에 기계 학습 알고리즘 중 하나로 이진 분류 문제를 해결하기 위해 설계2-1. 논리 회귀(단층 퍼셉트론)로 AND 문제 풀기impo..

Python/딥러닝 2024.06.20

2024-06-20 16. 데이터로더

1. 데이터 로더(Data Loader)데이터의 양이 많을 때 배치 단위로 학습하는 방법을 제공 2. 손글씨 인식 모델 만들기import torchimport torch.nn as nnimport torch.optim as optimimport matplotlib.pyplot as pltimport torchvision.transforms as tranformsfrom sklearn.datasets import load_digitsfrom sklearn.model_selection import train_test_splitdevice = 'cuda' if torch.cuda.is_available() else 'cpu'print(device)digits = load_digits()X_data = digi..

Python/딥러닝 2024.06.20

2024-06-19 15. 파이토치로 구현한 논리회귀

1. 단항 논리 회귀(Logistic Regrssion)분류를 할 때 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리 회귀라는 이름이 붙여짐  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.FloatTensor([[0], [0], ..

Python/딥러닝 2024.06.19