Programming Study/Python & AI 22

GCN 구현 예제, Cora 논문 인용 네트워크

1. 예제 코드의 목적과 역할 분석 그래프 신경망 중에서도 가장 기본이 되는 GCN을 구현한 예제 해결하려는 문제 : - 노드 분류 : 논문 인용 네트워크에서 각 논문(노드)이 어떤 주제 분야에 속하는지 예측 - 반지도 학습 : 전체 노드 중 일부만 라벨이 있는 상황 실무적 가치 :- 추천 시스템 : 사용자-아이템 관계 그래프에서 사용자 선호도 예측- 소셜 네트워크 분석 : 사용자 그룹 분류, 영향력 분석- 분자 구조 분석: 화합물의 특성 예측- 지식 그래프: 엔티티 분류 및 관계 예측 2. 필수 라이브러리 분석 import torch : 모델 정의, 옵티마이저 설정, 텐서 조작torch.nn.functional as F - 함수형 API : F.relu(), F.log_softmax(), F.nll..

YOLO 모델에서 특정 클래스 성능이 안나온다면?

1. Object Detection 이미지나 영상에서 특정 객체의 존재 여부를 확인하고, 해당 객체의 위치를 바운딩 박스로 표시하는 기술. 이미지 내에서 여러 개의 객체를 동시에 탐지하고 분류할 수 있다. 주로 CNN 모델 활용 자율주행, 보안감시, 의료 영상 분석, 증강현실 등 분야에서 활용됨 2. 객체 탐지 방식의 분류 객체 탐지 방식은 크게 전통적 기법과 딥러닝 기반 기법으로 나눌 수 있다. 1. 전통적인 기법 이미지에서 특징 (Feature)을 추출해 객체를 탐지하는 방식 대표적으로 HOG+SVM, Haar Cascade, Selective Search 등이 있음 최근에는 딥러닝 기법 대비 성능이 떨어져 잘 사용되지 않음 2. 딥러닝 기반 기법 딥러닝 기법은 크게 Two-Stage와 One-S..

컴퓨터 비전 데이터 셋 추천 사이트 | 어노테이션 및 도구

컴퓨터 비전과 데이터셋의 중요성 컴퓨터 비전은 컴퓨터가 인간의 시각과 유사하게 이미지나 영상을 분석하고 이해하는 인공지능 분야 최근에는 CNN 등 딥러닝 기술의 발전으로 이미지 분류, 객체 검출, 얼굴 인식 같은 다양한 작업의 성능이 크게 향상되었다. 자율주행과 의료 영상 진단 등 여러 산업에서 활발히 활용되고 있다. 컴퓨터 비전 기술에서 가장 중요한 요소 중 하나는 양질의 데이터셋이다. 딥러닝 모델은 다양한 환경에서 촬영되고 정확히 라벨링된 충분한 양의 이미지 데이터를 통해 패턴을 학습하기 때문이다. ImageNet, COCO, Pascal VOC와 같은 대규모 데이터셋은 객체 검출 및 이미지 분류 분야의 표준이 되었다. 특정 도메인을 위한 의료 영상 데이터셋 등도 널리 사용되고 있다. 최근에는 데이..

[CNN] 손글씨 도형 분류하기

1. 요구사항 분석 및 목표 문제 정의 : 이미지 (28 x 28, 그레이 스케일) 에서 원, 삼각형, 엑스를 분류 목표 :1. 파이토치 CNN 모델 설계, 학습 2. 학습된 모델의 성능(정확도)을 평가 3. 훈련된 모델 파일 저장, 가중치 저장 2. 사용하는 기술 스택 및 라이브러리 딥러닝 프레임 워크 : 파이토치 (torch, torchvision)데이터 전처리, 증강 : torchvision.transforms데이터 로딩 : torch.utils.data.Dataset, DataLoader시각화 : Matplotlib(plt)모델 최적화 : torch.optim.Adam손실함수 : nn.CrossEntropyLoss 3. 코드 3-1. 데이터 변환 transform = transforms.Com..

CNN 레이어 종류, 간단한 CNN 모델 만들기

CNN을 구성하는 레이어 1. 입력 레이어 (Input Layer)역할 : 원본 이미지를 숫자 행렬 ( 예 : 32 x 32 x 3, RGB 채널)로 네트워크에 전달 비유 : 요리를 시작하기 위해 주방에 재료(이미지 파일)를 꺼내 놓는 단계 2. 합성곱 레이어 (Convolution Layer)역할 : 작은 커널(=필터) (예 3 x 3)을 사용해 이미지 위를 슬라이딩 하며, 국소적인 패턴 (경계, 질감 등)을 추출 출력 : 커널 수만큼의 특징 맵 (feature map) 생성 (H, W, C_out) 형태 비유 : 모서리 찾기 도장 스탬프를 이미지를 따라 찍어서 "여기 경계 있슈!" 라고 표시하는 과정 3. 배치 정규화 레이어 (Batch Normalization, 선택적)역할 : 합성곱 출력 채널별로..

Multi-class Weather Dataset | 머신러닝 모델 학습 예제

1. 데이터 분리하기 import osimport zipfileimport randomfrom shutil import copyfile, rmtree # src 경로의 파일을 dst 통째로 복사, 폴더 모두 삭제zip_file = 'multiclass-weather-dataset.zip'base_dir = './Multi-class Weather Dataset'train_dir = './train'test_dir = './test'extract_path = '.' # 폴더 생성 없이 현재 디렉터리에 압축 해제with zipfile.ZipFile(zip_file, 'r') as zip_ref: #zip 파일 열기 zip_ref.extractall(extract_path) # 전체 내용을 extra..

퍼셉트론과 다층퍼셉트론, 활성화함수

1. 퍼셉트론 - 가장 간단한 형태의 인공신경망 - 입력 값과 해당 가중치의 곱을 모두 더한 값에 편향을 더하고, 이를 활성화 함수로 변환해 이진출력을 생성- 학습 과정에서는 출력값이 실제 값과 다를 경우, 가중치를 조정하는 방식으로 학습이 이루어진다. - 단층 구조로, 선형적으로 분리 가능한 문제를 해결할 수 있었지만, XOR 같은 비선형적으로 분리되는 문제를 해결하지 못하는 한계가 있다. - 같을 땐 0, 다를 땐 1 # 논리 회귀(단층 퍼셉트론)로 AND 문제 풀기 (둘 다 1일 경우에만 1)import torchimport torch.nn as nnimport torch.optim as optimX = torch.FloatTensor([[0, 0], [0, 1], [1, 0], [1, 1]])y..

손 글씨 숫자 데이터셋

1. 손 글씨 숫자 데이터셋 0~9까지 숫자를 손글씨로 쓴 흑백 이미지로 구성되어있으며, 각 이미지는 8x8 픽셀 크기의 64차원 벡터로 표현된다. 각 픽셀 값은 0(흰색)에서 16(검은색)까지의 명암값을 가진다. 이 데이터는 총 1797개의 샘플로 이루어져 있다. 각 샘플에는 숫자 클래스가 레이블로 붙어있다. 주로 분류 알고리즘을 학습시키거나 데이터 시각화, 차원 축소 기법 등을 실험하는 데 사용된다. https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_digits.html load_digitsGallery examples: Recognizing hand-written digits Feature agglomeration Va..

파이토치로 구현한 논리회귀

1. 논리회귀란?주어진 입력 데이터를 기반으로 두 가지 이상의 범주로 분류하는 지도학습 알고리즘. 주로 이진분류 문제에 사용되고, 입력 변수의 선형 결합을 통해 특정사건이 발생할 확률을 예측. 이 알고리즘은 시그모이드 함수 또는 로지스틱 함수라는 비선형 함수를 사용해 예측값을 0과 1 사이의 확률로 변환한다. 모델의 결과는 일반적으로 특정 임계값을 기준으로 두 범주 중 하나로 분류된다.예 ) 이메일이 스팸인지 아닌지를 판별하거나, 환자의 병 진단 여부를 예측하는 데 사용될 수 있다. 논리회귀는 계산이 비교적 간단하고 해석이 용이해 머신러닝에서 널리 사용되는 알고리즘 * 시그모이드 함수 입력값을 받아서 이를 0~1 값으로 변환하는 수학함수 주로 확률을 예측해야하는 문제에서 사용된다. 논리회귀와 인공신경망..

파이토치로 구현한 선형회귀

독립변수 X와 종속변수 y간의 선형 관계를 찾아 수식 Y = WX + b (기울기 W, 절편 b)로 설명, 예측하는 통계 머신 러닝 기법 - 주어진 데이터에서 "입력 출력" 간 패턴 학습 - 새 입력에 대해 최대한 정확한 예측값 제공 1. 모델 수식 : Y = WX + b (기울기 W, 절편 b)2. 손실 함수 : 예측값과 실제값 차이를 측정 (예 : MSE)3. 최적화 알고리즘 : 경사하강법 등으로 W, b 업데이트 그냥 선형회귀 vs PyTorch 기반 선형회귀 * 그냥 선형회귀 - 수학적 해법 (정규 방정식) 또는 사이킷런 등 라이브러리 활용 장점 : 코드 한두 줄로 빠르게 모델 생성 학습 제약 : 내부 학습 과정을 세밀히 제어하기 어려움 * PyTorch 기반 선형회귀 - 프레임워크 위에서..