본문 바로가기

분류 전체보기184

C++ 언어의 기초 C++ 언어의 기초 주석은 프로그래머를 위한 것으로 컴파일러는 주석을 무시한다. 주석은 //와 /*를 사용하여 나타낼 수 있다. C++은 세 단계를 거쳐서 빌드 된다. 전처리 작업으로 코드 내에 지시된 메타 정보를 인식하여 자동으로 코드를 수정하고 컴파일 작업으로 소스 코드를 기계어로 번역한다. 마지막 링크 작업으로 기계어로 된 여러 오브젝트 파일을 묶어서 하나의 실행 파일로 만든다. 전처리 지시자인 #include은 헤더 파일의 코드를 가져와서 현재 소스 파일에 삽입하도록 지시한다. #define은 상수나 매크로를 정의하는데 사용되고 #ifdef나 #ifndef는 헤더 파일의 중복 인클루드를 막는 경우에 사용된다. main 함수는 프로그램을 실행할 때 가장 먼저 호출되는 시작점이다. main의 인자로는.. 2017. 7. 11.
머신러닝 실습 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.