전체 글 73

[2021.10.21] Neural Network and Deep Learning 강좌 수료.

Coursera Andrew Ng의 Neural Network and Deep Learning 강좌를 모두 수강했다. 4주차로 구성되어있는 짧은 강의 였지만 딥러닝에 대한 전반적인 이해와 지식을 배울 수 있었다. 1. 여러개의 hidden layers가 있는 NN을 Deep Neural Network이라 한다. 2. Forward propagation은 input에서 ouptut을 parameter w, b를 이용해 activation function을 계산한다. 3. Back propagation의 계산을 편리하게 하기 위해, forward propagation일 때 캐시로 Z = W*A+b 를 저장한다. 4. Backward propagation은 ouptut y와 labeled y의 차이를 통해, ..

[Andrew Ng] Neural Network and Deep Learning : 4. Deep Neural Networks

Deep L-layer Neural network What is a deep neural network? 여러개의 hidden layer가 있는 NN을 Deep Neural network라고 한다. Notation 레이어 갯수 : L = 4 레이어 $l$에 있는 노드(유닛) 갯수 : $n^{[l]}$ 레이어 $l$에 있는 activations : $a^{[l]}$ $a^{[l]}=g^{[l]}(z^{[l]})$ $z^{[l]}$의 가중치 $w^{[l]}$ Forward Propagation in a Deep Network Forward Propagation $$z^{[l]}=w^{[l]}A^{[l-1]}+b^{[l]} \ A^{[l]}=g^{[l]}(z^{[l]})$$ Not vectorized$a^{[..

Coding/Coursera 2021.10.19

[2021.10.15] 딥러닝 강좌 3주차 끝.

Coursera의 Neural Networks and Deep Learning 3주차 강좌를 모두 마쳤다. 이번 주차에서는 hidden layer가 하나만 있는 모델을 사용해 딥러닝을 구현하는 내용이었다. 수업을 들으면서 어찌저찌 진도는 나갔지만, numpy의 shape(dimension)에 대한 정확한 이해와 딥러닝 학습 흐름에 대한 이해가 부족한 것 같다. 1. $a^{[i]}$ 는 i 번째 layer, $a_n$ 은 n번재 unit, $a^{[i](m)}$ 은 m번째 training example을 의미한다. 2. Vectorizing을 통해서 for-loop을 없앨 수 있는데, 같은 column은 같은 training example이, 같은 row에는 같은 unit이 위치하도록 한다. 3. NN을..

[Andrew Ng] Neural Network and Deep Learning : 3. One hidden layer Neural Network

Neural Networks Overview What is a Neural Network? Neural Network는 여러개의 hidden layer가 연결되어 있는 Logistic Regression과 비슷하다. Backward Propagation(calculation)을 통해 cost function의 각 변수에 대한 편미분 값을 구할 수 있다. Neural Network Representation $a^{[i]}$를 통해 i번째의 layer를 나타낸다. $a_n$을 통해 n번째의 unit을 나타낸다. $$a^{[0]} = X \ , \ a^{[1]} =\begin{bmatrix} a_1^{[1]} \ a_2^{[1]} \ \vdots \ a_n^{[1]} \end{bmatrix} \ , \ a^..

Coding/Coursera 2021.10.14

[2021.10.08] 딥러닝 강좌 2주차 프로그래밍 과제 전.

Coursera의 딥러닝 강좌 2주차를 들었다. 강의는 모두 듣고 programming assignment 하나만 남겨두고 있다. 과제는 2주차에서 배운 딥러닝 계산 과정을 이용해 파이썬으로 구현하는 과정인데, 이전 머신러닝에서 matlab을 통해 과제를 했던 경험을 떠올리면 쉽지 않을 것으로 예상된다. Linear Regression 내용을 복습해야겠다. 1. Vectorization을 통해 for-loop을 줄여 효율적인 코드를 작성할 수 있다. 2. 파라미터 b, w를 matrix로 나타내면 여러개의 feature를 하나의 변수에 저장할 수 있고, 계산도 용이하다. 3. input X와 이에따른 z = w^T * X + b 를 벡터화하면 여러개의 training examples (m)에 대해 연산이..

[Andrew Ng] Neural Network and Deep Learning : 2. Basics of Neural Network Programming (2)

Vectorization 벡터화를 통해 for-loops을 줄여 컴퓨터가 계산을 효율적으로 할 수 있게 할 수 있다. More vectorization examples Whenever possible, avoid explicit for-loops. $$u = Av \ u_i=\sum_i\sum_j A_{ij}v_j$$ non-vectorized u = np.zeros((n,1)) for i ... for j ... u[i] += A[i][j] * v[j] vectorized u = np.dot(A,v) Vectors and matrix valued functions ex. 모든 matrix elements에 exponential operation을 해야할 때 non-vectorized u = np.zer..

Coding/Coursera 2021.10.08

[~2021.10.06] 딥러닝 강좌 듣기.

늘 다짐이 그렇듯 처음에는 의지에 불타올라 열심히 하다 시간이 지날수록 점점 귀찮아지고 잘 안 하게 된다. 그렇다고 공부를 아예 안한것은 아니지만, TIL 작성도 귀찮고 공부량도 적어진 것은 사실이다. 다시 마음을 다잡고 할 수 있는 계기가 필요한 것 같다. 1. 클래스 상속은 어떤 클래스를 만들 때, 기능을 이어받는 것을 말한다. 2. class 자식클래스(부모클래스): 명령어로 자식클래스를 만들 수 있다. 3. 자식클래스에서는 파이썬 내부적으로 부모클래스의 생성자를 불러오기 때문에 따로 작성하지 않아도 된다. 4. 메소드 오버라이딩은 부모클래스에 있는 메소드를 가져와 수정하고 덮어쓰는 것을 말한다. 5. 클래스 변수는 객체 변수와 달리 모든 객체에 공유된다. (같은 데이터 값을 갖는다.) 6. Log..

[Andrew Ng] Neural Network and Deep Learning : 2. Basics of Neural Network Programming (1)

Basics of Neural Network Programming Binary Classification 바이너리(0 또는 1)로 분류하는 것을 의미한다. 예를 들어 고양이의 이미지를 보고 고양이인지(1) 아닌지(2)를 판단해 라벨을 다는 것은 binary classification이다. Notation $n_x$ features : $x$, output $y$ $x \in \reals^{n_x} , \ y \in {0,1}$ m개의 training example : ${(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})}$ $$X = \begin{bmatrix} x^{(1)} \ x^{(2)} \ ... \ x^{(m)} \end{bmatrix} \ ..

Coding/Coursera 2021.10.06

[코뮤니티] 클래스의 상속, 메소드 오버라이딩(Overriding)

클래스 상속 어떤 클래스를 만들 때, 기능을 이어(상속)받는것. 클래스를 상속하는 방법pass class 자식클래스(부모클래스): 상속해주는 클래스 : 부모클래스, 상속받는 클래스 : 자식클래스 # 부모클래스 class Calculator(): def __init__(self, first, second): self.first = first self.second = second def add(self): result = self.first + self.second return result def subtract(self): result = self.first - self.second return result def multiply(self): result = self.first * self.second r..

Coding/Python 2021.09.30

[코뮤니티] 클래스와 메소드, 생성자

계산기 기본기능을 클래스를 이용해 만들어보았다. 클래스 안에는 메소드가 있으며 이를 이용해 만든 것을 객체라고 한다. 클래스는 붕어빵틀과 같이 객체를 생성할 수 있으며, 이로 만들어진 붕어빵을 객체라고 볼 수 있다. class 안의 def 함수는 메소드(method)라고 불린다. 메소드의 self 파라미터는 객체 자신을 메소드로 전달한다. def __init__() 생성자를 사용하면 초기값을 설정하고 객체가 생성될 때 자동으로 호출된다. (a = Calculator(x, y)) class Calculator: def __init__(self, first, second): self.first = first self.second = second def add(self): result = self.first ..

Coding/Python 2021.09.29

[2021.09.28] Deep Learning 배우기

오늘은 Coursera의 Neural Networks & Deep Learning 강의 1주차를 마쳤다. 아직 Introduction이라 자세한 내용은 배우지 못했지만, 딥러닝에 대한 전체적인 개념을 알 수 있었다. 또한 코뮤니티의 파이썬에 대한 새로운 내용을 알 수 있었다. 1. 데이터의 디지털화, 컴퓨팅 성능의 발전, 알고리즘의 최적화로 딥러닝이 각광받고 있다. 2. 파이썬의 튜플은 리스트와 비슷하나 값을 수정하거나 생성할 수 없다. 3. 집합은 순서가 없으며, 따라서 인덱스를 사용할 수 없다. 또한 중복이 허용되지 않는다. 4. 연산자나 함수를 통해 차집합, 합집합, 교집합 등을 구할 수 있다. 5. 딕셔너리는 코드잇에서도 배웠지만 키-값 쌍으로 이루어져 있다. 이전보다 많은걸 하려다보니 집중하기가..

[코뮤니티] 파이썬(python) 튜플, 집합, 딕셔너리(dictionary)

달콤한 파이썬 #3. 튜플, 집합 튜플 리스트는 대괄호 [ ]로, 튜플은 괄호 ( )로 둘러싼다. 리스트와 달리 튜플은 값의 생성, 삭제, 수정이 불가능하다. 다른 자료형도 포함할 수 있다. tuple_1 = (1, 2) tuple_2 = ("python", 1, 2) tuple_3 = (1, 2, (1, 2, 3)) print(tuple_1) # (1, 2) print(tuple_2) # ('python', 1, 2) print(tuple_3) # (1, 2, (1, 2, 3)) 튜플 역시 인덱스로 접근할 수 있다. + : 튜플 추가 (이어붙이기) * : 튜플 반복 tuple_1 = (1, 2) tuple_2 = ("python", 1, 2) tuple_3 = (1, 2, (1, 2, 3)) print..

Coding/Python 2021.09.28

[Andrew Ng] Neural Network and Deep Learning : 1. Introduction to Deep Learning

Introduction to Deep Learning What is a Neural Network? Single Neural Network를 연결하여 Neural Network를 만들 수 있다. Neural Network의 모든 input feature는 노드에 연결되어 있다. Supervised Learning with Neural Networks Supervised Learning은 다양한 분야에서 사용될 수 있다. (ex. 온라인 광고, 사진 태그, 음성 인식, 번역, 자율주행) Neural Network는 Standard NN, Convolutional NN, Recurrent NN 등이 있다. 데이터의 종류에는 feature가 잘 정의되어 있는 structured data와 음성파일, 이미지, ..

Coding/Coursera 2021.09.28

[2021.09.27] 11번째 파이썬 공부 : 다음은?

코드잇의 프로그래밍 기초 in python 강좌를 모두 수강했다. 비록 난이도는 낮은 편이었지만, 파이썬의 기초적인 개념을 배울 수 있어서 좋았다. 1. 특정 조건을 만족할 때까지 반복하는 것은 while문을 사용하는 것이 좋다. 2. if ~ in 을 사용하여 요소가 리스트에 있는지 확인하는데 요긴하게 사용할 수 있다. 3. 조건이 여러개일 때는 가장 범주가 작은 조건을 우선으로 작성하고, 그 조건 이외에 상황에서 어떻게 나눌 것인지 생각하는 게 좋다. 4. 함수의 파라미터를 여러개 지정하여 return할 수 있다. 지금까지 기초적인 파이썬 공부를 해보았고, 앞으로 인공지능과 빅데이터 관련 공부를 하기 위해 Coursera의 Neural Networks & Deep Learning 강좌를 수강할 계획이..