본문 바로가기

분류 전체보기

(17)
[백준] 2504, 13458 해설 보호되어 있는 글입니다.
6.23 치렀던 문제 후기 보호되어 있는 글입니다.
MNIST with multi-layer perceptron MNIST Dataset¶multi-layer perceptron for multi-class classification¶0~9 사이의 흑백 손글씨가 무슨 숫자인지 알아맞히는 알고리즘을 작성해보도록 하겠다. mnist.load_data()에 커서를 옮긴 후 Shift+Tab를 쳐본다. 그러면 그 함수에 대한 설명이 나오는데 그 중 Returns 항목을 보면 라고 쓰여있다. 그것을 토대로 mnist.load_data()의 반환형식을 알 수 있으며 해당하는 형태로 값을 받아주면 된다. In [1]: import numpy as np from keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() print(X_t..
파이썬 문자열 index기반으로 변경하기 파이썬의 string은 index기반으로 특정 문자를 바꾸는 게 불가능하여 성가신 상황들이 종종있다. 그래서 그걸 가능하게 하려면 그 부분만 제외해서 슬라이싱 후 (슬라이싱1 + 새로운문자 + 슬라이싱2)와 같이 복잡하고 비효율적인 방법으로 해결해야한다. 이게 문자 하나만 바꾸고 말거라면 다행이지만 엄청나게 많은 문자들에 대해서 이런 작업들을 해야한다면? 끔찍하다. 다행히도 마음에 드는 괜찮은 잡기술이 하나 있다. a = "abcd" b = list(a) b[1] = 'z' a = "".join(b) print(a) list로 바꿔주고 join을 통해 string으로 엮어내는 코드 가운데에 원하는데로 자유롭게 indexing하며 수정하면 된다. C에서 문자열을 다룰 때 처럼 말이다. (다만 파이썬의 리스..
Single-layer Perceptron for Multi-class Classification MNIST Dataset¶Single-layer Perceptron for Multi-class Classification¶0~9 사이의 흑백 손글씨가 무슨 숫자인지 알아맞히는 알고리즘을 작성해보도록 하겠다. mnist.load_data()에 커서를 옮긴 후 Shift+Enter를 쳐서 나온 설명에서 Returns 항목을 보면 라고 쓰여있다. 그것을 토대로 mnist.load_data()의 반환형식을 파악한 후 해당하는 형태로 값을 받아주면 된다. In [1]: import numpy as np from keras.datasets import mnist (X_train, y_train), (X_test, y_test) = mnist.load_data() print(X_train.shape, X_test...
Gradient Descent 공식 유도 Gradient Descent 알고리즘의 공식을 수학적으로 유도해보자. 먼저 Loss Function과 Cost Function의 의미를 정의하고 출발하겠다. Loss Function은 정답과 예측값의 일치정도를 나타내는 함수이다. 정답과 예측값이 완전히 동일하다면 그 값은 0이 나올 것이며, 값이 다를 경우 미묘한 차이에는 시큰둥하다가 차이가 커지면 커질수록 값이 무한대로 나아가게끔 과민반응할 것이다. 식은, $$ L(y, h(x)) = \frac{1}{2} (h(x)-y)^{2} $$ 을 사용할 것이다. $h(x)$는 Hypothesis Function이며 예측값을 구하는 함수이다. 식을 보면 MSE(Mean Squared Error) Loss Function에 $\frac{1}{2}$을 붙인 형태인..
Single-layer Perceptron 적용 섭씨 화씨 변환¶섭씨를 화씨로 변환시키는 공식을 Single-layer Perceptron이 찾아나가게끔 하겠다. 먼저 -50~100 사이의 랜덤한 섭씨값 100개를 만들고 각각을 화씨로 변환한다. In [1]: import numpy as np celsius = np.random.randint(low=-50, high=101, size=100) fahrenheit = celsius * 1.8 + 32 print("celsius\n", celsius) print("\n") print("fahrenheit\n", fahrenheit) celsius [ 29 88 57 32 53 21 84 78 45 -22 2 40 62 35 -39 18 43 -23 57 0 73 85 66 17 67 -27 -5 -6 6..
인공지능, 머신러닝, 딥러닝 인공지능부터 차례로 정리하자면, [인공지능] 1. 인공지능은 말 그대로 인간에 의해 인위적으로 형성된 지능을 뜻한다. [머신러닝] 2. 머신러닝은 기계학습이란 뜻으로 말 그대로 기계가 학습함을 뜻한다. 기계라는 대상이 인위적인 방법에 의해 학습이라는 지능적 형태를 갖추게 되므로 머신러닝이라는 정의 자체가 인공지능의 부분집합으로써 포함된다고 볼 수 있다. 예를 들어 테트리스를 매우 잘하는 인공지능 프로그램을 만들었다고 하자. 그런데 그 테트리스 AI는 수 억 번 게임을 되풀이해도 실력이 전혀 늘지도 않고 줄지도 않는다. 이런 경우가 바로 인공지능의 범주에는 포함되지만 머신러닝의 범주에는 들어가지 못하는 것이다. 반대로 그 테트리스 AI가 게임을 반복하며 계속 학습해서 점점 실력이 증진된다면 그 알고리즘은 ..