분류 전체보기 90

Python 자연어 처리 개요

자연어(Natural Language) - 프로그래밍 언어와 같이 인공적으로 만든 기계 언어와 대비되는 단어로, 우리가 일상에서 주로 사용하는 언어이다. 자연어 처리- 컴퓨터가 한국어나 영어와 같이 인간의 자연어를 읽고 이해할 수 있도록 돕는 인공지능의 한 분야이다.- 자연어에서 의미있는 정보를 추출하여 활용한다.- 기계가 자연어의 의미를 이해하고 사람의 언어로 소통할 수 있게 한다. 자연어 처리의 활용- 문서 분류, 스팸 처리와 같은 분류 문제 - 검색어 추천 - 음성 인식, 질의 응답, 번역 - 소셔 미디어 분석 자연어 처리의 용어- 자연어 이해(NLU)     - 자연어 처리의 하위 집합이다.     - 일반적을로 기계가 자연어의 실제 의미, 의도나 감정, 질문 등을 사람차럼 이해하도록 돕는 것이다..

Python 딥러닝 포켓몬 분류

포켓몬 분류 - Train: https://www.kaggle.com/datasets/thedagger/pokemon-generation-one- Validation: https://www.kaggle.com/hlrhegemony/pokemon-image-dataset Complete Pokemon Image Dataset2,500+ clean labeled images, all official art, for Generations 1 through 8.www.kaggle.com더보기# 케글에서 가져오기 위해서 모듈 importimport os# 케글 연결하기os.environ["KAGGLE_USERNAME"] = "name"os.environ["KAGGLE_KEY"] = "apikey"# 데이터셋 가져..

Python 딥러닝 전이 학습

에일리언 vs 프레데터 데이터셋 - 케글 api 사용하기- 케글 로그인 -> 우측 상단 계정 클릭 -> Your Profile 클릭 -> Setting -> Account -> API에서 Create New API Token -> Kaggle.json 파일이 다운로드 됨더보기# 모듈 importimport os# 케글 연결하기os.environ["KAGGLE_USERNAME"] = "name"os.environ["KAGGLE_KEY"] = "apikey"# 데이터셋 가져오기!kaggle datasets download -d pmigdal/alien-vs-predator-images# zip파일 풀기!unzip -q /content/alien-vs-predator-images.zip# 필요한 모듈 impo..

Python 딥러닝 간단한 CNN 모델 만들기

더보기# 필요한 모듈 importimport 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)  # 두번째 Conv2Dco..

Python 딥러닝 CNN(Convolutional Neural Networks)

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

Python 딥러닝 비선형 활성화 함수

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

Python 딥러닝

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

Python 머신러닝, 딥러닝 데이터 로더

데이터 로더(Data Loader) - 데이터의 양이 많은 때 배치 단위로 학습하는 방법을 제공한다. 손글씨 인식 모델 만들기더보기# 필요한 모듈 importimport 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 확인device = "cuda" if torch.cuda.is_available() else "cpu"print(device)  # 사용할 데이터를 객체에 담아준다.digits = load_digits()X_da..

Python 머신러닝, 딥러닝 파이토치로 구현한 논리회귀

단항 논리 회귀(Logistic Regression) - 분류를 할 때 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리회귀라는 이름이 붙여졌다. 시그모이드(Sigmoid) 함수 - 예측값을 0에서 1 사이의 값으로 되도록 만든다.- 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5(임계값)를 기준으로 구분한다.더보기# 모듈 importimport torchimport torch.nn as nnimport torch.optim as optimimport matplotlib.pyplot as plt# 난수 생성과정을 일관되게 만들이 위함이다.# 코드를 실행할 때 마다 동일한 난수 순서를 얻을 수 있게 되며 # 이는 모델 학습 및 실험의 일관성을 보장한다고 한다.torch.manual_see..

Python 머신러닝, 딥러닝 파이토치로 구현한 선형 회귀

단항 선형 회귀 - 한 개의 입력이 들어가서 한 개의 출력이 나오는 구조더보기# 모듈 설치import torchimport torch.nn as nnimport torch.optim as optimimport matplotlib.pyplot as plt# torch안에서 랜덤한 값을 고정torch.manual_seed(2024)# 객체 생성x_train = torch.FloatTensor([[1], [2], [3]])y_train = torch.FloatTensor([[2], [4], [6]])print(x_train, x_train.shape)print(y_train, y_train.shape)  # 점그래프로 나타내기plt.figure(figsize=(6, 4))plt.scatter(x_train, ..