본문 바로가기

2017/0626

머신러닝 실습 with Tensorflow 8장 - ReLu & Dropout & Xavier - 머신러닝 실습 with Tensorflow 8장- ReLu & Dropout & Xavier - 6장에서 Softmax를 사용하여 MNIST test data를 학습시킨 모델을 하였다. 이번에는 같은 데이터를 사용하여 Accuracy를 높이는 방법을 찾기 위한 실습을 진행할 것이다. 6장의 코드를 참고한 후 어떻게 변하는지를 체크하면 좋을 것 같다. 먼저 NN에 대한 학습 방법을 사용할 것이다. 6장에서 사용한 예시에서는 layer라는 것이 존재하지 않았다. 하나의 데이터를 넣어 바로 결과가 나오는 과정을 거쳤는데 Neural Network의 방법을 사용하여 여러 개의 layer를 만들어 학습시킬 수 있다. layer를 만들 때에는 shape에 대한 값이 매우 중요하다. Weight의 경우 들어오는 in.. 2017. 6. 12.
데이터 분석 with Python 3장 - Matplotlib를 활용한 데이터 분석 - 데이터 분석 with Python 3장- Matplotlib를 활용한 데이터 분석 - Matplotlib은 numpy 혹은 pandas를 통해 얻은 데이터에 대한 분석 결과를 시각화시키는데 사용하는 라이브러리이다. Matplotlib은 DataFrame 혹은 Series 형태의 데이털르 가지고 다양한 형태의 플록을 만들어 주는 기능을 가지고 있다. Matplotlib를 설치하는 방법은 cmd 프로그램이나 터미널에 pip install matplotlib라는 명령을 입력해주면 쉽게 설치가 가능하다. Matplotlib를 사용하기 위해서는 Python에서 %matplotlib이라는 매직 명령어를 통해 플롯팅 옵션을 먼저 지정해야한다.(ipython에서 사용하는 경우) %matplotlib nbagg를 실행하.. 2017. 6. 11.
머신러닝 실습 with Tensorflow 7장 - Neural Network for XOR problem - 머신러닝 실습 with Tensorflow 7장- Neural Network for XOR problem - XOR 문제는 Neural Network를 시작시킨 문제라고 생각해도 과언이 아니다. 이전의 문제들은 W와 b의 하나의 값만을 이용하여 Linear regression을 통해 해결이 가능하였다. 하지만 XOR의 문제는 하나의 W와 b의 값으로 예측하는 것이 불가능하였다. 그래서 나온 방법이 Neural Network이다. 또 다른 layer를 만들어서 1차 결과 값을 새로운 layer의 입력 값으로 넣는 과정을 통해 최종 결과 값을 도출하는 것이다. 따라서 Neural Network에 대한 tensorflow 구현의 첫 번째로 XOR 문제를 풀어볼 것이다. 우선 x_data와 y_data는 정해져.. 2017. 6. 11.
데이터 분석 with Python 2장 - Pandas를 활용한 데이터 분석 - 데이터 분석 with Python 2장- Pandas를 활용한 데이터 분석 - Pandas는 교유하게 정의한 Series 및 DataFrame 등의 자료 구조를 활용하여 빅데이터 분석에 있어 우수한 성능을 발휘하는 모듈이다. 기존에 엑셀로 하던 모든 분석을 더 큰 스케일의 데이터에 대하여 더 빠른 속도로 적용할 수 있는 장점을 가지고 있다. Pandas를 설치하는 방법은 cmd 프로그램이나 터미널에 pip install pandas라는 명령을 입력해주면 쉽게 설치가 가능하다. Pandas를 사용하기 위해서는 Python에서 import를 시켜 주어야한다. import Pandas as pd 로 명령을 넣어서 pd라는 이름을 통해 Pandas 모듈을 사용할 수 있는 상태로 만든다. Pandas의 대표적인 .. 2017. 6. 9.
머신러닝 실습 with Tensorflow 6장 - MNIST data test - 머신러닝 실습 with Tensorflow 6장- MNIST data test - 이번 장에서는 Tensorflow에서 머신러닝 모델을 구축할 때 가장 많이 data set으로 사용되는 MNIST을 이용하여 학습시켜볼 것이다. MNIST data는 0부터 9까지 적혀있는 숫자를 나타낸다. 하지만 이 숫자들의 모양이 조금 제각각이다. 하지만 사람의 눈으로 보았을 때에는 딱 봐도 무슨 숫자인지 알 수 있을 정도의 차이이다. 그렇다면 이런 data를 컴퓨터에 넣어주어 학습을 시키면 새로 적은 숫자에 대해 그 숫자가 무엇인지를 맞출 수 있을까? MNIST data set을 가지고 하는 모델 학습은 이것을 목표로 한다. MNIST data set은 28*28*1 의 픽셀의 이미지로 만들어진다. 그러므로 28*28.. 2017. 6. 9.
데이터 분석 with Python 1장 - NumPy를 활용한 데이터 분석 - 데이터 분석 with Python 1장- NumPy를 활용한 데이터 분석 - NumPy는 주요한 python 데이터 분석 라이브러리의 기본 베이스가 되는 라이브러리로 벡터 및 행렬 연산과 관련하여 편리한 인터페이스를 제공한다. NumPy를 설치하는 방법은 cmd 프로그램이나 터미널에 pip install numpy라는 명령을 입력해주면 쉽게 설치가 가능하다. NumPy를 사용하기 위해서는 Python에서 import를 시켜 주어야한다. import numpy as np 로 명령을 넣어서 np라는 이름을 통해 numpy 모듈을 사용할 수 있는 상태로 만든다. NumPy는 기본적으로 array라는 단위로 데이터를 관리한다. 이러한 데이터를 활용해서 다양한 연산을 할 수 있고 이를 통해 데이터 분석을 할 수 .. 2017. 6. 9.
알고리즘 9장 - 해쉬 알고리즘(1) - 알고리즘 9장- 해쉬 알고리즘(1) - Direct-address tables 는 크기가 U인 테이블 T를 생성하고 key k를 slot k에 저장하는 방식이다. 이 때 중복되는 key는 없다고 가정한다. 이는 데이터를 저장하는 방식인데 전체 크기가 U인 곳에서 actual key인 K가 존재한다고 생각한다. 해당되는 데이터를 table에 저장하고 table에서 필요한 key 값과 그에 해당하는 data를 확인하는 자료구조이다. Direct-address tables을 사용하게 되면 수행시간이 매우 짧다는 장점이 있다. 우리가 알고자 하는 data의 key 값을 알고 있으면 table을 통해 바로 원하는 data를 찾을 수 있기 때문이다. 이에 해당하는 Pseudo code는 다음과 같다. 하지만 이런 .. 2017. 6. 8.
알고리즘 8장 - 선형시간 정렬 알고리즘 : 계수 정렬 - 알고리즘 8장- 선형시간 정렬 알고리즘 : 계수 정렬 - 앞 장에서 설명한 정렬 알고리즘은 비교 연산을 통해서 정렬을 하는 방식을 취했다. 비교 연산은 두 개의 원소의 관계를 크고 작음에 따라 비교하여 판단하는 연산이다. 비교연산으로 정렬하는 방법은 아무리 빨라도 nlgn보다는 빠를 수가 없다. 하지만 비교를 하지 않는 방법으로 하면 이 보다 따른 시간으로 수행이 가능하다. 이런 방법으로 계수 정렬이 있다. 계수 정렬은 실제 숫자를 세는 방법으로 숫자가 몇 개인지를 기록한다. x라는 입력은 x보다 작은 원소의 개수가 I-1개라면 정렬 후에 I번째에 위치해야 한다. x보다 작은 원소의 개수는 원소를 개수를 세어서 확인할 수 있다. 계수 정렬에 대한 예를 한 번 들어보자. A라는 배열이 입력으로 들어왔다고 .. 2017. 6. 8.
머신러닝 실습 with Tensorflow 5장 - training-test data set & learning rate & normalization - 머신러닝 실습 with Tensorflow 5장- training-test data set & learning rate & normalization - 머신러닝 모델을 설계할 때 학습시킬 데이터만 존재하는 것이 아니다. 학습을 시킬 데이터를 통해 학습을 시키고 나면 이를 테스트할 test data set도 존재한다. 대부분 총 데이터 중에서 70% 정도는 training data set으로 이용하게 되고 나머지 30% 정도로는 test data set으로 활용하게 된다. training data set의 경우에는 학습을 시키는 모델이므로 x_data 값과 y_data 값을 동시에 train 과정에 넣어주게 된다. 하지만 test data set은 x_test에 대한 data 값만을 넣어서 우리가 세운 모.. 2017. 6. 8.
리눅스 3장 - CLI & I/O Redirection - 리눅스 3장- CLI & I/O Redirection - 보통의 PC는 Window의 운영체제를 사용하여 GUI 방식의 명령을 수행한다. GUI는 아이콘을 사용하여 명령을 내리게 되는데 이는 컴퓨터가 많은 에너지를 사용하게 한다. 단순히 생각해도 이미지를 매번 나타내기 때문에 그렇다는 것을 알 수 있다. 이에 비해 CLI는 더 적은 메모리와 CPU를 사용하게 된다. CLI는 명령어를 통해 명령을 수행하는데 명령어를 통해 제어를 하면 순서대로 처리하는 방식에서 큰 장점을 가진다. 이는 속도의 측면에서도 빠르게 작용한다. CLI 방식은 하나의 명령의 실행 결과를 다른 명령의 입력으로 사용할 수 있다. 명령은 프로그램을 가리키게 되고 프로그램은 이에 맞게 프로세스로 바뀌어 수행되게 된다. 명령어를 동시에 수행.. 2017. 6. 8.