본문 바로가기

2017/0572

머신러닝(Machine Learning) 12장 - XOR 문제 딥러닝으로 풀기(Backpropagation) - 머신러닝(Machine Learning) 12장- XOR 문제 딥러닝으로 풀기(Backpropagation) - 앞장에서 딥러닝의 기본 개념에 대해서 살펴보았는데 XOR 문제가 발생하였다. 비교 연산을 하는 경우 AND의 문제나 OR의 문제는 하나의 logistic regression을 사용하게 되면 쉽게 해결 할 수 있었다. 하지만 XOR의 경우에는 하나의 logistic regression을 이용하면 해결하는 방법이 없었다. 이 때 사용한 방법이 logistic regression을 multiple로 사용하는 방법이다. 이는 Neural Network의 형태로 나타나게 된다. 이런 경우 풀 수 있는 가능성은 있지만 학습에 대한 불가능이 나타나게 되었다. 우선 XOR 문제를 Neural network를.. 2017. 5. 30.
파이썬(python) 강의 10장 - 객체와 변수(데이터) - 파이썬(python) 강의 10장- 객체와 변수(데이터) - 파이썬의 class를 사용하여 객체를 쓰게 되면 유용한 듯 보이지만 하나의 큰 문제를 발견할 수 있다. 그건 바로 하나의 class로 선언된 객체의 변수를 밖에서 마음껏 바꿀 수 있다는 것이다. 이게 왜 문제가 되는지 궁금할 수도 있다. 그래서 이에 대해 설명을 하고 이를 방지할 수 있는 방법을 설명하고자 한다. 변수는 매우 중요한 자료이다. 모듈을 사용하지 않고 class를 이용하여 객체를 만드는 이유 중 하나가 함수는 같은데 변수를 다양하게 사용하기 위해서 이다. 그러므로 변수는 객체를 구성하는 종류에서 매우 중요하다고 할 수 있다. 그런데 우리가 지정해주지 않았는데도 class 외부 즉 객체가 지정해주는 값 이외에 다른 임의의 값이 들어오.. 2017. 5. 29.
파이썬(python) 강의 9장 - 객체 지향 프로그래밍 - 파이썬(python) 강의 9장- 객체 지향 프로그래밍 - 객체 지향 프로그래밍은 Object Oriented Programming으로 객체를 통해 프로그래밍을 동작시키는 방식을 말한다. 앞의 장에서 모듈에 대해서 배웠다. 모듈은 일종의 수납공간과 같은 형태로 우리가 원하는 함수를 모듈이라는 공간에 잘 보관하여 사용하고 싶을 때 사용을 할 수 있게 해주는 도구이다. 이러한 모듈이라는 개념에서 조금 더 다양한 기능을 수행할 수 있게 해주는 것이 바로 객체라는 도구이다. 객체는 class와 instance로 이루어져 있다. class는 모듈과 같은 수납공간으로 이해할 수 있다. 하지만 class는 함수뿐만 아니라 연관된 변수 또한 포함하고 있는 공간이다. 우리는 이 class를 바로 사용하지 않고 복제를 하.. 2017. 5. 29.
머신러닝(Machine Learning) 11장 - 딥러닝(Deep Learning) 기본 개념 - 머신러닝(Machine Learning) 11장- 딥러닝(Deep Learning) 기본 개념 - 머신러닝의 목표는 복잡한 문제에 대해 사람의 힘없이 컴퓨터 스스로 해결을 하는 방법을 만들어내는 것이다. 이러한 목표의 시작은 뇌에 대한 공부에서 시작이 된다. 컴퓨터가 스스로 문제를 해결하기 위해서는 사람과 비슷하게 학습과 계산, 사고를 할 수 있어야 한다. 따라서 이런 부분에서 가장 모방을 할 수 있는 것이 바로 인간의 뇌이다. 사람의 뇌는 매우 복잡한 연결되어 있어 다양한 연산, 사고 처리 등이 가능할 수 있게 되어 있다. 그런데 그에 비해 각각의 신경 세포인 뉴런은 매우 단순하게 작동하고 있었다. 특정 input signals에 대한 값이 거리에 따라 w의 값에 의해 곱해지게 되고 이들의 합과 bia.. 2017. 5. 29.
머신러닝(Machine Learning) 10장 - Training-Testing data set - 머신러닝(Machine Learning) 10장- Training-Testing data set - Machine Learning의 특정 모델을 학습시키기 위해서는 training data set이 필요하다. 하지만 training data set만으로 학습을 한 후 바로 실제 데이터를 사용에 투입되는 것은 아니다. 다른 데이터를 활용해서 이 학습 모델이 제대로 동작하는지에 대한 test 과정이 필요하다. 이 때 필요한 데이터 값이 testing data set이다. 만약 다음과 같은 데이터가 주어진다고 생각을 해보자. 집의 크기에 따른 가격의 차이를 나타내는 data set이다. 만약 다음의 data set을 모두 training data set으로 사용해서 특정 머신러닝 모델을 학습시킨다고 생각을 해.. 2017. 5. 29.
머신러닝(Machine Learning) 9장 - Learning rate, data preprocessing, overfitting - 머신러닝(Machine Learning) 9장- Learning rate, data preprocessing, overfitting - Linear regression이나 logistic regression의 방법을 사용할 때 cost function을 최소화시키기 위해서 우리는 Gradient descent algorithm을 사용했다. Gradient descent는 기울기의 크기가 줄어드는 쪽으로 가는 것이 cost function이 최소가 되는 지점을 찾아간다는 생각에서 나온 알고리즘이다. Gradient descent algorithm을 사용할 때 cost 값의 미분한 값 앞에 알파라는 값이 오게 되는데 이 값이 Learning rate이다. Learning rate은 어느 정도의 크기로 기울기.. 2017. 5. 29.
[백준 알고리즘] 2579번 계단 오르기 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째, 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다.계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안된다. 단, 시작점은 계단에 포함되지 않는다.마지막 도착 계단은 반드시 밟아야 한다.따라서 첫 번째 계단을 밟고.. 2017. 5. 27.
머신러닝(Machine Learning) 8장 - Softmax regression의 cost함수 - 머신러닝(Machine Learning) 8장- Softmax regression의 cost함수 - 우리는 앞장에서 여래 개의 결과 값을 가질 수 있는 형태의 regression에 대해 살펴보았다. 각각의 데이터에 대해서 binary 형태의 선형 구분을 해주어 이에 따라 각각에 대한 알고리즘을 실행시켜 해당하는지 아닌지를 예측하게 되었다. 이를 위해 행렬의 형태를 사용하게 간단하게 표현을 할 수 있었다. 우리는 또한 결과 값이 sigmoid function을 통해 0과 1사이의 값을 가지게 만들고 싶었다. 그래서 각각의 알고리즘을 돌린 결과에 대해 p라는 확률적인 값을 가지게 만들고 싶다. 이런 방법을 해주는 것이 바로 Softmax라는 기법이다. 특정 데이터 결과 값들에 Softmax라는 함수를 넣어주.. 2017. 5. 25.
머신러닝(Machine Learning) 7장 - Multinomial classification - 머신러닝(Machine Learning) 7장- Multinomial classification - 앞장에서 Logistic regression에 대한 설명을 하였는데 잠깐 요약하게 되면 Logistic regression 중 binary 결과 값에 대한 예측을 진행하였다. 0과 1에 중에 하나의 값을 결과 값으로 가져야하는데 Linear regression을 사용하게 되면 선형적으로 결과 값이 증가하거나 감소하기 때문에 결과 값을 나타내기 힘들었다. 따라서 sigmoid function을 이용하여 결과 값이 0과 1 사이에서만 나타나게 만들고 0.5의 기준을 가지고 0인지 1인지를 구분하게 되었다. 그런데 여기서 결과 값이 0과 1만이 아니라 학점과 같이 A, B, C, D, F 와 같은 형태로 다양하.. 2017. 5. 25.
머신러닝(Machin Learning) 6장 - Logistic Regression 의 cost function - 머신러닝(Machin Learning) 6장- Logistic Regression 의 cost function - Cost function은 예측을 하는 값과 실제 결과 값의 차이를 나타내는 함수이다. 예측을 하는 데이터를 바꾸어가면서 실제 결과 값과 차이를 그래프로 나타낼 수 있다. 제일 적절한 예측을 하는 가설은 바로 cost function이 최소가 되는 가설일 것이다. Linear Regression을 사용할 때는 다음과 같은 cost function을 사용하였다. 앞의 cost function을 이용하여 Logistic Regression에 해당하는 그래프를 그리게 되면 볼록한 형태가 아니라 울퉁불퉁한 형태가 나와서 Gradient descent algorithm을 통해 최솟값을 구할 수 없게 .. 2017. 5. 24.