지난 시간에는 classifier 중 이웃, kNN에 대해 배웠다. 이번 시간에는 Linear classifier에 대해 배울 것이다. 다시 CIFAR10을 불러와보자. 50,000 training images. each image is 32*32*3 Linear classifier 선형 분류기의 아이디어는 parametric approach이다. 3072 number에서 f(x,W) 라는 함수에 W라는 parameters or weights 라는 기본적인 가중치를 준다. f(x,W) = Wx +b (10,) (10, 3072) 모든 이미지를 함수로 만들어준다. 이미지를 쪼갠 후, W라는 가중치 벡터를 곱해서 각각의 r,g,b에 대한 결과값을 구한다. b라는 편향성으로 함수를 보정해준다. 함수와 같다. ..
clssification 할 떄 이미지들에서 고려할 점. 1. 우리는 이미지를 바로 인식할 수 있지만, 컴퓨터에서 이미지는 전부 숫자로 이루어져 있다. rgb를 뜻하는 코드[0~255]와 800*600*3 channel RGB 즉, 빨강, 초록, 파랑 채널의 숫자들을 각각 가지고 있다. 2. 만약 카메라의 방향이나 각도를 바꾼다면 픽셀의 값은 매우 많이 변동한다. 이 점에서 로봇들이 어떻게 대응할 것인지 생각해 볼것. 만약 같은 물체지만 색깔이 다른 경우, 전부 다른 픽셀값을 가지므로 그 방안에 대해서도 고려해야 한다. 4. 카테고리 안에서도 분류되는 경우가 있다. ex) 고양이의 종류. 5. background color에 대해서도 고려해야 한다. 6. 조명이나 일루미네이션에 대해서도 인식할 수 있을정..
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 풀이 import sys a,b = map(int,sys.stdin.readline().split()) c=a%b d=a*b while b!=0: if (a%b)==0: c=b break c=a%b a=b b=c print(c) #유클리드 호제법 print(int(d/c)) #최대공약수 * 최소공배수 = a*b와 같다. 단순한 방법으로는 범위가 넓고 구할 수 없기에, 유클리드 호제법을 사용한다. 유클리드 호제법이란 복잡해 보이지만 쉽게 말하면 a를 b로 나눈 나머..
1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 풀이 n = int(input()) li = list(map(int,input().split())) ans = sum(li) print((ans/n)/max(li)*100) 리스트에 있는 요소들을 받고, 그 수식들의 평균을 출력해주면 되는 단순한 문제이다. 그렇다면 리스트에 있는 모든 수를 더해서 n으로 나눠준다면 일단 평균이 되고, max(li)*100을 통해 고친 평균을 출력해주면 된다. sum이나 for이나 마찬가지지만, sum이 아주 조금은 더 빠르..
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 풀이 팰린드롬으로 판단하려면 간단하게 앞쪽의 수와 맨 뒤쪽의 수를 비교하면서 가면 된다. 코드로 직관적으로 쉽게 짜면 다음과 같다. import sys li = list(map(int,sys.stdin.buffer.read().rstrip().split())) for i in li: if i==0: break i=str(i) a=0 #첫번째 수의 인덱스 b=-1 #마지막 수의 인덱스 while len(i)!=a:..