분류 전체보기 367

python - class/ 상속/ magic method

Class 1. 객체지향이란 : 설계도(Class) 작성 -> 실제 물건(객체; Object) '사용자 정의 데이터 타입'이라고도 한다. 사용 이유: 여러명의 개발자가 코드를 효율적으로 작성해서 프로젝트를 완성시키기 위한 방법 2. Class란 : 변수와 함수를 묶어놓은 개념이라고 간단하게 생각 Class의 사용 방법: - 변수와 함수가 들어있는 Class를 선언 - Class를 객체로 만들어서 Class안에 선언된 변수와 함수를 사용한다. - 변수와 함수가 들어있는 Class를 선언 - Class를 객체로 만들어서 Class안에 선언된 변수와 함수를 사용한다. #1. Class의 선언 - 계산기 class class Calculator: #변수 작성 num1 = 1 num2 = 2 #함수 작성 def ..

About Pair Programming

1. Pair Programming이란 페어 프로그래밍이란 애자일 개발 방법론 중의 하나로 하나의 개발 가능한 PC 에서 두 명의 개발자가 함께 작업하는 것을 말한다. 네비게이터(navigator)가 전략을 제시하고 드라이버(driver)가 실제 코드를 작성하며, 이 열할을 각자 번갈아가며 수행한다. 짝 프로그래밍이라고도 한다. Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of ..

Learning Tensorflow) 1. 텐서플로의 기본 이해하기

텐서플로우의 동작의 구성 1. 만들고 2. 실행하기 1) 그래프 -> 세션 -> 실행 ; 만들고 실행하기 import tensorflow as tf로 tensorflow를 import하면 그 시점에 있는 기본 그래프가 만들어지면 우리가 만드는 노드는 이 기본그래프에 자동으로 연결된다. 그래서 노드를 어떻게 만드는가?! a = tf.constant(5) b = tf.constant(2) 그러면 만들어진 노드로 연산을 진행하는 연산 그래프는 어떻게 만드는가?! 흔히 사용되는 tensorflow 연산이나 축약형 연산자를 이용한다. d = tf.multiply(a, b) #a*b c = tf.add(a, b)#a+b 이렇게 노드와, 연산 그래프를 만드고 나면 연산 그래프를 실행할 준비가 된 것이며, 연산을 실행..

Javascript Algorithm) 알고리즘과 복잡도

Intro. 더보기 Achievement Goals 재귀 재귀 개념을 이해할 수 있다 무한 loop에 빠지지 않도록 재귀를 이용할 수 있다 (Advanced) call stack이 넘친다는 것의 의미를 이해할 수 있다 복잡도 time complexity에 대해 이해하고, Big-O notation으로 표기할 수 있다 time complexity의 주요 case들과 실제 사용 예가 어떠한 것이 있는지 알 수 있다 코드를 보고 time complexity가 어떠한지 이해할 수 있다 (Advanced) once, memoize의 구현 원리를 이해할 수 있다 (Advanced) delay, throttle의 구현 원리를 이해할 수 있다 (Advanced) 코드를 재사용할 수 있는 패턴이 어떠한 것이 있는지 알 ..

2. 경사 하강 학습법 - 경사 하강 학습법

앞서 학습-최적화 이론-경사 하강 학습법 에 대한 개념을 이해하였으니, 수학적으로 어떻게 표현되는지를 알아보도록 하겠습니다. 1) 최적화 이론이란 다시 한번 자세히 살펴보면, 가능한 모든 해 중 최적의 해(이게 최소값이 될 수도 있고, 최대값이 될 수도 있습니다.)를 찾는 문제를 해결하는 이론입니다. 이를 '딥러닝 네트워크 학습'에 접목시켜보면, 손실함수(Loss Function)이 최소가 되게 하는 Training Parameter를 찾는 문제가 되는 것 입니다. 2) 최적화 문제를 풀기위한 방법으로는 분석적 방법(함수의 모든 구간을 수식으로 알 때 사용하는 수식적 해석 방법) 과 수치적 방법(함수의 형태와 수식을 알지 못 할때 사용하는 계산적인 해석 방법)이 있습니다. real world..(?) 에..

2. 경사 하강 학습법 - 모델의 학습과 경사하강 학습법과 최적화이론의 관계

경사 하강 학습법을 배우기에 앞서, 모델의 학습이 뭔지, 그리고 최적화 이론이 뭐고, 이 셋의 관계가 무엇인지를 살펴보겠습니다. 1) 모델의 학습 학습에는 두 종류가 있습니다. 1. Supervised Learning(지도학습) : 학습 데이터의 입력과 함께 정답을 알려주고 그 정답(Label 또는 Groundtruth라고 합니다. )을 맞추도록 하는 방법 2. Unsupervised Learning(비지도학습) 정답의 제공 없이 학습 데이터로부터 유용한 정보를 추출하는 방법 2) 머신러닝의 Supervised Learning에 관련된 용어 앞으로는 이 용어들을 사용하여서 앞서 제시했던 학습 목표들을 살펴볼 것입니다. 1. Training Parameters(학습 매개변수) : Training과정에서 값..

1. 가장 단순한 신경망을 통한 작동원리 - Shallow Neural Network 수식적 이해

1) 뉴런의 수학적 표현 이를 수식으로 나타내면, y = a(∑ wi xi +b) 입니다. '∑ wi xi'는 벡터의 내적과 동일해서, y = a(wTx + b) 로 다시 쓸 수 있습니다. 즉, 뉴런은 수학적으로 두 벡터의 내적으로 쉽게 표현할 수 있습니다. 2) Fully connected layer의 수학적 표현 위에서는 y가 하나인 경우, 즉 뉴런의 수학적 표현을 알아보았는데, y가 여러개가 모인(전부 연결된) 계측을 수식적으로 표현하는 것은 y0 = a(wTx0 + b0) y1 = a(wTx1 + b1) y2 = a(wTx2 + b2) y3 = a(wTx3 + b3) y4 = a(wTx4 + b4) ... 이 모두 모인 것입니다. 따라서 벡터가 여러개 모여 Matrix를 형성하여 Matrix의 형..

1. 가장 단순한 신경망을 통한 작동원리 - Shallow Neural Network

1) Artificial Neural Network (인공 신경망) : 뉴런이 모여 서로 연결된 형태를 인공신경망 이라고 합니다. 딥러닝 네트워크는 인공신경망을 기반으로 합니다. 더보기 인공 신경망의 또 다른 부흥의 근거 1. 신경망을 훈련시키기 위한 데이터가 방대하다. 인공 신경망은 규모가 크고 복잡한 문제에서 다른 머신러닝 기법보다 좋은 성능을 나타낸다. 2. 수백만 개의 강력한 GPU카드를 생산해 내는 게임 사업과 무어의 법칙 등 1990년대 이후 크게 발전된 컴퓨터 하드웨어의 성능 3. 훈련 알고리즘의 향상 4. 인공 신경망의 투자 와 진보 선순환 등이 있습니다. 출처: 329p 2) Fully-connected layer ; Dense layer (전결합 계층) 뉴런이 모인 한 단위인 layer..