Data Science

Machine Learning

다중분류 with pytorch

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 이진분류 예측은 정답은 1 or 0 이어서 '확률' (nn.sigmoid) 를 이용해 정답이 어느정도 가까운지 확인했었음. 다중분류에서는 입력값 -> 예측 모델 -> 확률값으로 나온 출력값 중 확률이 가장 큰 것을 고른다. 예를들어 00으로 나올확률의 출력이 0.8/ 01로 나올 확률의 출력 0.2 / 02로 나올 확률의 출력이 0.33/ 이면, 출력값이 가장 큰 예측값으로 00을 도출하는 것이다. 이진분류에서는 가중치와 입력벡터를 내적하고, bias를 더했지만 다중분류에서는 가중치 벡터와 입력벡터를 행렬곱 연산을 하고 bias를 더해준다. 다중분류에선 softmax 함수를 사용한다. softmax는 입력값이 가장크면 확률값도 가장 크도록 출력한..

Machine Learning

이진 분류 with pytorch

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 이전 선형 회귀 모델과 비교했을 때, 이진 로지스틱 회귀 모델은 시그모이드 함수가 새롭게 추가되었다. 오버피팅이란 train data에서만 정확도가 높고, 다른 데이터에 대해서 정확도가 높지않은 것을 의미한다. 또한 오버피팅은 학습 횟수가 늘어날수록 train 데이터의 acc가 좋아지는 반면, 검증데이터의 정확도 좋아지지 않는다. 학습을 반복해도 향상되지 않는다. 검증(test) 데이터는 학습된 모델의 정확도를 평가하는 목적으로만 쓰인다. 시그모이드 함수는 항상 값이 증가하고(단조증가 함수), 0과 1사이의 값을 취하고, x=0 일때 값이 0.5, 그래프는 점 (0,0.5)기준으로 점대칭이다. sigmoid 변환값이 0.5보다 큰 경우, 예측결과..

코딩테스트

백준 1764번 파이썬 - 듣보잡(출력 오류 관련)

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, ..

코딩테스트

백준 10816번 파이썬 - 숫자카드 2

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다..

Machine Learning

선형회귀 with Pytorch

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 선형 함수 다음 레이어 함수는 2차원의 입력을 받아 3차원 텐서로 출력하는 함수이다. l3 = nn.Linear(2,3) 단일 회귀 함수는 다음과 같이 구현된다 1입력 1출력으로 표시되고 있고, bias(정수항)은 기본으로 True로 설정되어있다. torch.manual_seed(123) # 입력 :1 출력 :1 선형 함수의 정의 l1 = nn.Linear(1, 1) # 선형 함수 확인 print(l1) Linear(in_features=1, out_features=1, bias=True) for param in l1.named_parameters(): print('name: ', param[0]) print('tensor: ', param[1]..

Machine Learning

예측 함수 정의 with pytorch

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 신경망과 파이토치 프로그램의 대응 관계는 다음과 같다. 중간 텐서는 은닉층이다. 파이토치 프로그래밍에 필요한 레이어 함수는 다음과 같다. 이중에서 파라미터를 갖는 것을 하이라이트 표시하였다. nn. Linear /선형함수/회귀 nn.Sigmoid/ 시그모이드/ 이진분류 nn.LogSoftmax/ softmax+ log / 다중분류 nn.ReLU/ ReLU 함수 nn.Conv2d/ 컨볼루션 함수/ 이미지 인식 nn. MaxPool2d/ 풀링 함수 / 이미지 인식 nn.Flatten/ 1계 텐서로 변형/ 이미지 인식 nn.Dropout/ 드롭아웃 nn.BatchNorm2d/ 배치 규격화 nn.AdaptiveAvgPool2d/ 적응형 풀링 함수 / p..

Machine Learning

ML with pytorch

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 경사하강법 구현 방법 예측 계산, 손실 계산, 경사 계산, 파라미터 수정 4개의 단계로 진행된다. 데이터 입력 및 변환 sampleData1 = np.array([ [166, 58.7], [176.0, 75.7], [171.0, 62.1], [173.0, 70.4], [169.0,60.1] ]) print(sampleData1) 데이터를 불러와서 독립변수, 종속변수를 나눠준다 x = sampleData1[:,0] y = sampleData1[:,1] print(x) #독립변수 print(y) #종속변수 [166. 176. 171. 173. 169.] [58.7 75.7 62.1 70.4 60.1] X = x - x.mean() Y = y - y...

Python

파이토치 기본 기능

출처: 차근차근 실습하며 배우는 파이토치 딥러닝 프로그래밍 파이토치의 최대 특징은 자동 미분 기능이다. 0계 텐서는 스칼라, 1계 텐서는 벡터, 2계 텐서는 행렬을 뜻함. import torch r0 = torch.tensor(1.0).float() print(type(r0)) print(r0.dtype) torch.float32 텐서 변수가 생성될 때는 반드시 뒤에 float()을 호출해서 float32로 변환해야한다.0계 텐서이기 때문에 []가 비어있다. 만약 2행 3열인 2계텐서가 있으면 Torch.Size([2,3])이 출력된다. print(r0.shape) print(r0.data) torch.Size([]) tensor(1.) 1계텐서는 다음과 같다. torch.tensor 인수로 넘파이 배열..

해파리냉채무침
'분류 전체보기' 카테고리의 글 목록 (3 Page)