728x90
반응형

AI 21

[ML] 로지스틱 회귀(Logistic Regression) 쉽게 이해하기 & Pytorch 구현

로지스틱 회귀(Logistic Regression) 독립 변수 $ x $가 1개인 이진 분류(Binary Classification)와 로지스틱 회귀에 대해 정리하고 Pytorch로 구현해본 뒤, 독립 변수 $ x $가 2개 이상인 다중 분류(Multiclass Classification)와 소프트맥스 회귀에 대해 정리하고 Pytorch로 구현해볼 것이다. 이번 게시글에서는 로지스틱 회귀를 다룬다. 1. 이진 분류(Binary Classification) 이진 분류는 시험이 합격인지 불합격인지 예측하는 문제, 스팸 메일인지 정상 메일인지 분류하는 문제와 같이 둘 중 하나를 결정하는 문제를 말한다. 이러한 이진 분류를 풀기 위한 대표적인 알고리즘으로 로지스틱 회귀(Logistic Regression)이 있..

AI/머신러닝 2023.04.09

[ML] 다중 선형회귀(Multivariable Linear Regression) 정리 & Pytorch 구현

선형 회귀(Linear Regression) 선형 회귀는 주어진 데이터로부터 x와 y의 관계를 가장 잘 나타내는 직선을 그리는 것을 의미한다. 여기서 x는 독립적으로 변할 수 있는 독립 변수, y는 x 값에 의해 종속적으로 결정되므로 종속 변수에 해당한다. 독립 변수 x가 1개인 단순 선형 회귀와 Pytorch 구현에 대해서는 아래 게시글에 설명되어있다. https://daeunnniii.tistory.com/192 [ML] 선형 회귀 (Linear Regression) 정리 & Pytorch 구현 선형 회귀(Linear Regression) 선형 회귀는 주어진 데이터로부터 x와 y의 관계를 가장 잘 나타내는 직선을 그리는 것을 의미한다. 여기서 x는 독립적으로 변할 수 있는 독립 변수, y는 x 값에 ..

AI/머신러닝 2023.04.09

[ML] 선형 회귀 (Linear Regression) 정리 & Pytorch 구현

선형 회귀(Linear Regression) 선형 회귀는 주어진 데이터로부터 x와 y의 관계를 가장 잘 나타내는 직선을 그리는 것을 의미한다. 여기서 x는 독립적으로 변할 수 있는 독립 변수, y는 x 값에 의해 종속적으로 결정되므로 종속 변수에 해당한다. 1. 단순 선형 회귀(Simple Linear Regression) 독립 변수 x가 1개이면 단순 선형 회귀이다. 직선의 방정식에서 기울기를 머신러닝에서는 w 가중치(weight)라고 하며, 별도로 더해지는 값 b를 편향(bias)라고 한다. 2. 다중 선형 회귀 분석(Multiple Linear Regression Analysis) 독립 변수 x가 2개 이상이면 다중 선형 회귀이다. 다수의 요소 x1, x2, ..., xn을 가지고 y 값을 예측한다..

AI/머신러닝 2023.04.09

[Pytorch] 데이터 로드하기 - Dataset, DataLoader 정리

딥러닝을 포함한 머신러닝의 근원은 데이터이다. 데이터의 수집, 가공, 사용 방법에 따라 모델 성능이 크게 달라질 수 있으며 데이터의 형태는 매우 다양하기 때문에 데이터를 잘 불러오는 것은 가장 중요한 단계 중 하나이다. Pytorch에서는 데이터를 좀 더 쉽게 다룰 수 있도록 데이터셋(Dataset)과 데이터로더(DataLoader)를 제공한다. 이를 사용하면 미니 배치 학습, 데이터 셔플(shuffle), 병렬 처리까지 간단히 수행할 수 있다. 1. TensorDataset 사용하여 데이터 로드하기 우선 텐서를 입력받아 Dataset의 형태로 변환해주는 TensorDataset을 사용해볼 것이다. TensorDataset은 기본적으로 텐서를 입력으로 받는다. import torch import torc..

AI/딥러닝 2023.03.28

[Pytorch] Autograd 자동 미분 및 역전파 적용하기

이번 글에서는 Pytorch의 Autograd를 활용해 자동 미분(Auto differentitation)하는 방법과 이전 게시글에서 이론을 살펴보았던 경사하강법의 역전파 과정을 Pytorch로 구현하여 편미분을 쉽게 진행하는 방법을 알아볼 것이다. 이전 게시글 https://daeunnniii.tistory.com/189 역전파와 경사하강법 쉽게 이해하기 역전파(BackPropagation)는 한마디로 신경망 모델에서 오차를 이용하여 가중치를 업데이트하는 방법이다. 1. 인공 신경망의 이해 예제로 사용할 인공 신경망은 다음과 같이 입력층, 은닉층, 출력층 3 daeunnniii.tistory.com 인공 신경망을 최적화하는 과정에서 미분은 필수적인 요소이다. Pytorch에서는 최적화 과정인 역전파(B..

AI/딥러닝 2023.03.26

역전파와 경사하강법 쉽게 이해하기

역전파(BackPropagation)는 한마디로 신경망 모델에서 오차를 이용하여 가중치를 업데이트하는 방법이다. 1. 인공 신경망의 이해 예제로 사용할 인공 신경망은 다음과 같이 입력층, 은닉층, 출력층 3개의 층을 갖고 각 layer는 2개의 뉴런으로 구성된다. 은닉층과 출력층의 모든 뉴런은 활성화 함수로 시그모이드 함수를 사용한다. 은닉층과 출력층의 변수 z는 이전 층의 모든 입력이 각각 가중치와 곱해진 값들을 모두 더한 가중합을 의미한다. 이 값은 아직 시그모이드 함수를 거치지 않은 상태이다. z의 우측 | 를 지나서 존재하는 변수 h 또는 o는 z가 활성화 함수인 시그모이드 함수를 지난 후의 값으로 각 뉴런의 출력값을 의미한다. * 시그모이드 함수는 활성화 함수 중 하나로 아래와 같이 0에서 1 ..

AI/딥러닝 2023.03.26

[Pytorch] 텐서(Tensor) 다루기

1. Pytorch 패키지의 기본 구성 1) torch: 메인 네임스페이스. 텐서 등 다양한 수학 함수가 포함되어있으며 numpy와 유사한 구조를 가진다. 2) torch.autograd: 자동 미분을 위한 함수들이 포함. 자동 미분자동 미분의 on/off를 제어하는 콘텍스트 매니저(enable_grad/no_grad)나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 'Function' 등이 포함되어 있다. 3) torch.nn: 신경망을 구축하기 위한 다양한 데이터 구조나 레이어 등이 정의되어있다. 예를 들어 RNN, LSTM과 같은 레이어, ReLU와 같은 활성화 함수, MSELoss와 같은 손실 함수들이 있다. 4) torch.optim: 확률적 경사 하강법(Stochastic Gradi..

AI/딥러닝 2023.03.26

파이참(Pycharm)에 KoNLPy 설치 및 에러 발생 시 완벽 해결

Python에서 패키지 설치는 대부분 pip install 패키지명으로 쉽게 다운받을 수 있지만, KoNLPY 설치의 경우 Java 기반으로 만들어져있어 추가적인 작업이 필요하다. 따라서 KoNLPy 패키지 설치 방법 및 에러가 발생할 수 있는 경우를 정리해보려고 한다. 참고로 나는 주피터 노트북이나, cmd 창에서 Python 셸을 띄워서 KoNLPy를 사용했을 때는 오류없이 정상적으로 진행되었지만, Pycharm에서는 아래와 같은 에러가 발생했었다. 만약 에러가 발생했다면, 아래 과정 중 빠진 것이 있는지 잘 살펴보고 확인한다면 해결할 수 있을 것이다. SystemError: java.nio.file.InvalidPathException: Illegal char at index 72: C:\Users..

AI/NLP 2021.08.08

OpenCV 자료형 Mat Class 알아보기(1)

Mat 클래스는 OpenCV의 가장 기본이 되는 클래스로, 행렬(Matrix) 구조체이다. Mat class에는 다양한 생성자가 존재하고, 1, 2, 3차원 배열을 효율적으로 표현가능하다. 많이 사용하는 2차원은 아래와 같다. Mat mtx(행 개수, 열 개수, 행렬 안 값들의 데이터 타입) Mat 클래스는 헤더와 데이터 포인터로 이루어진다. -헤더: Mat 클래스에 대한 정보. 행렬의 크기나 행렬의 깊이 등이 저장 -데이터 포인터: 각 데이터가 담겨있는 메모리 주소 정보가 저장 Mat 클래스의 구조는 크게 행렬의 크기, 데이터 타입, 깊이 3가지로 나눌 수 있다. -행렬의 크기: 행과 열의 크기. int 타입으로 할당해 사용 -데이터 타입: 행렬의 각 요소에 대한 데이터 타입. int나 float 등으..

AI/Vision 2020.10.02

Visual Studio에서 OpenCV 개발환경 설정하기

Visual studio에서 OpenCV 개발환경 설정 시 참고하기 위해 작성한 글입니다. 저는 Visual studio 2017을 사용했습니다. visual studio가 다른 버전이라도, 많은 차이점은 없으니 혹시 궁금한 점 있으시면 댓글 부탁드립니다 ʕ•ﻌ•ʔ 1. 아래 링크를 통해 OpenCV 깃허브로 들어가서 opencv-4.4.0-vc14_vc15.exe를 다운받습니다. https://github.com/opencv/opencv/releases 다운받은 뒤 exe파일을 실행시켜 원하는 위치에 opencv파일을 다운로드 합니다. 2. 환경변수 설정 이제 환경변수를 설정할건데요, 굳이 안해도 되지만 환경변수 설정을 안하면 Opencv 프로젝트를 생성할 때마다 환경설정을 위한 경로를 찾아야하므로 환..

AI/Vision 2020.10.02
728x90
반응형