분류 전체보기 264

[python] 파이썬 함수, Type(리스트, 튜플, dictionary)

파이썬 자료형 파이썬 Type으로 리스트를 간단하게 알아보았다. 배열처럼 사용하고 []으로 쓰는것을 명심하자 이것과 비슷하게 Tuple이라는 타입이 있다. ()으로 사용하고 []을 통해 원소에 접근한다. 리스트와의 차이점은 리스트는 일반적으로 동일한 자료형으로 이루어진 항목들에 대해 사용하고 튜플은 서로 다른 종류의 데이터형으로 이루어진 항목들에 사용한다. Dictionary는 {}으로 사용하며 C++의 map이나 자바스크립트의 객체처럼 이해하면 쉽다. 즉 key와 value의 쌍이라 생각하자 튜플은 이미 생성된 원소를 제거하거나 변경할 수 없다. 이들이 비어있을때는 false를 가지기 때문에 if not list 를 사용하여 비어있는지 확인할 수 있다. str, tuple, list는 비어있을때 fal..

python 2019.08.13

[python] 자료형, 입력, 출력

파이썬 자료형 ㅈ 파이썬은 기본적으로 정수형(int), float(실수), str(문자열) 이 기본자료형이다. 이들은 type()함수를 사용하여 확인할 수 있다. 문자열 자료는 변수명 = '' 혹은 " " 으로 선언할 수 있다. 배열과 비슷한 자료로 리스트가 있다. 변수명 = [] 로 정의할 수 있다. 이 리스트의 내장함수가 다양하다. 주로 사용하는 함수는 익혀두면 좋다. 또한 파이썬에는 [x:y] 형태로 리스트를 자를 수 있는 기능이 있다. 이 리스트는 자바스크립트와 비슷하게 []안에 다양한 기본 자료형이 복합적으로 들어갈 수 있으며, C++의 컨테이너와 비슷하게 '+' 연산자로 합할 수 있다. 이 외에도, 사전 자료와 튜플 자료가 있으며 차후에 다루도록 하자. 파이썬 입력, 출력 입력과 출력은 필자가..

python 2019.08.12

[NLP]합성곱 신경망_CNN : CIFAR-10

CNN은 Convolutional Neural Network의 약자로 완전연결계층과는 다르게 합성곱 계층과 풀링 계층이 추가되는 구조를 가지고 있다. 간단하게 위의 그림과 같이 나타낼 수 있다. 필자는 첫 번째 방식인 합성곱 + 풀링층 + 합성곱 ... + Fully Connected Layer의 구조를 사용한다. Convolution Layer 합성곱에서는 3차원 데이터(1, 28, 28)를 입력하고 3차원 데이터로 출력하므로 형상을 유지할 수 있다. CNN에서는 이러한 입출력 데이터를 Feature map(특징맵)이라고 한다. 합성곱 계층에서의 연산은 데이터와 필터의 모양을 나타내는데 이를 윈도우(Window)라고 부른다. 입력 데이터가 (4,4), 필터가 (3,3)일 때, 필터가 Convolutio..

[D3.js] 척도

척도는 입력되는 정의역(domain)과 출력되는 치역(range)을 매핑한 함수를 말한다. D3 reference를 보면 자세히 볼 수 있다. 데이터의 값들은 척도를 사용하여 시각화에 적절한 값으로 비율을 바꾸어 쉽게 매핑할 수 있다. 여기서는 선형척도만을 다루어 본다. 정의역이란 입력 가능한 데이터 값의 범위를 말하며 치역은 화면에 출력하기 위한 데이터 값의 범위라 생각하자. y=f(x)함수처럼 생각하면 이해하기 쉽다. 선형척도는 D3가 수행하는 수학적 정규화 과정이며, 정의역을 기준으로 정규화되고 정규화된 값은 치역을 기준으로 비율이 변경된다. 1 2 3 4 5 6 7 var scale = d3.scaleLinear(); // 척도함수 생성 scale.domain([100, 500]); // 정의역의..

D3_js 2019.08.03

[node.js] ES6 문법

자바 스크립트의 문법에 변화를 가져온 것이 ES2015 혹은 ES6라고 부른다. 매년 문법 변경사항과 새로운 문법상세에 대해 늘 새로워진 것이 나온다. 언제나 변화에 민감하고 변화하는것을 배워야 한다고 생각한다. 이 중 몇개만 살펴보자. const, let 자바 스크립트에서는 var로 변수를 선언한다. 이제는 const와 let이 대체한다. var은 함수 스코프를 가지므로 블록 밖의 스코프를 접근할 수 있지만, const와 let은 그럴 수 없다. const와 let의 차이는 const는 한 번 대입하면 다른 값을 대입할 수 없다. 초기화 시 값을 대입하지 않으면 에러가 발생한다. 그래서 변수 선언시 const를 사용하고 다른 값을 대입할 일이 생긴다면 let을 사용하자. 1 2 3 4 5 6 7 8 9..

node.js 2019.07.29

[D3.js] Scatter_산포도

이전 시간에 SVG를 이용하여 시각화를 진행할 것이다. 이번에는 '산포도'를 그려보자 산포도는 가로, 세로 즉, x y 축 위에 관련된 두 값을 넣는 시각화이다. 데이터는 Javascript의 배열에 배열을 담은 원소로 나타낸다. C++의 pair 컨테이너와 비슷하다고 생각하면 좋을 것 같다. 이전 막대그래프와의 차이는 산포도이기에 원으로 표현하는 것이다. SVG의 'circle'을 사용한다. 이때까지의 코드를 보면 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 var w = 500, h = 100; var datas = [ [5, 20], [480, 90], [250, 50], [100, 33], [330, 95], [410, 12], [475, 44], [25, 67], [85,..

D3_js 2019.07.25

[Compiler] DFA -> Minimal DFA : State Minimization Algorithm

본 내용은 아래의 출처에서 본것이고 허락을 맡고 포스트한다. 출처 : https://talkingaboutme.tistory.com/category/About%20Study/Compiler 이전 시간에 NFA에서 DFA로 변환하는 과정을 알아보았다. 위 그림을 기억하는가?? 오류가 있는데 위 그림에서 e가 완료 상태이다. 이 그림에서 상태 a가 initial state로 정해져 있지만, a에서 입력으로 A, B로 받는것과 c에서 입력을 A,B로 받는 것이 결과가 같다. 시작 상태가 c여도 똑같을 것이다. 이처럼 Subset Construction Algorithm은 표현할 수 있는 모든 경우의 수에 대해 DFA를 구한 것이기 때문에 불필요한 State Transition이 표현되기도 한다. 이 불필요한 ..

[NLP]MNIST 문자 인식

참고 및 출처 https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/g3doc/tutorials/mnist/beginners/ http://solarisailab.com/archives/303 MNIST란 28 * 28 크기의 0~9 사이의 숫자 이미지와 이에 해당하는 레이블로 구성된 데이터베이스다. 이것은 데이터의 양이 적당하고 문제 정의가 간단하여 입문용으로 자주 사용한다. MNIST 이미지 X가 입력으로 들어오면 그 이미지가 무슨 숫자인지를 해석해서 Y로 출력해주는 기본적인 이미지 인식 프로그램이다. 컴퓨터는 픽셀값으로 구성된 2차원 행렬만을 가지고 학습을 진행한다. 중요한 점은 숫자의 위치와 모양에 따른 변형이 컴퓨터가 인식을 제대로 못하게 하는 ..

[D3.js] SVG를 이용한 Chart와 Circle

이번에는 SVG를 이용해서 시각화를 진행해보자. SVG는 벡터로 이미지를 표현한 것이며 백터(vector) 이미지를 표현하기 위한 포맷으로 w3c에서 만든 백터 이미지 표준이다. 특징은 이미지를 확대하든 변형하든 깨짐이 없는것이 특징이다. 먼저 산점도부터 보자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 var w = 500, h = 200; var data3 = [5, 10, 20, 30, 50]; var svg = d3.select('body').append('svg') .attr('width', w).attr('height', h); //SVG객체를 참조하기 위함 var circle = svg.selectAll('circ..

D3_js 2019.07.19