Coding/TIL (Today I Learned) 16

[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의 차이를 통해, ..

[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을..

[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)에 대해 연산이..

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

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

[2021.09.28] Deep Learning 배우기

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

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

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

[2021.09.24] 10번째 파이썬 공부 : 꾸준함을 유지하자

추석 연휴 동안에는 코드잇 강의나 따로 파이썬 공부는 하지 않고, 우연히 코뮤니티의 추석맞이 챌린지를 발견해서 하루에 한 문제씩 코드를 작성해봤다. 그리고 연휴가 끝난 금요일이 되서야 다시 코드잇 강좌를 들었다. 이번 내용은 로또 시뮬레이션을 구현하는 프로젝트였는데, 배운 것들을 활용할 수 있는 부분이 많았다. 1. for ~ in ~ range() 로 리스트를 효율적으로 다룰 수 있다는 사실을 잊지 말자. 2. 코드를 쓰기 전에 while문을 써야 효율적 일지 for문을 써야 효율적일지 고민해보자. 3. from itertools import combinations를 통해 조합을 나타내고 계산할 수 있다. 4. 사용자 지정 함수 def function(): 를 사용할 때 어떤 값을 받아(paramete..

[2021.09.16] 9번째 파이썬 공부 : 배운걸 잊지말자

공부를 하면서 배운 내용이 점점 많아지다보니, 이전에 배웠던 것을 잊어버려서 사용을 못하거나 비효율적으로 코드를 짜는 일이 종종 생긴다. 정리한 내용을 복습하면서 다시한번 기억을 상기시켜야겠다. 1. import [file] as [name] 으로 name이라는 이름으로 파일을 불러올 수 있다. 2. from [file] import [function] 으로 파일의 함수 중에서 특정한 함수만 가져올 수 있다. 3. math, random, os, datetime과 같이 파이썬에 내장되어있는 standard library가 존재한다. 4. input 함수를 사용해 사용자가 입력한 값을 저장할 수 있다. 5. with open('directory/filename', 'r', decoding = 'UTF-8'..

[2021.09.14] 8번째 파이썬 공부 : 컴퓨터식 사고

파이썬 공부를 하면서 느끼는 것은, 어떤 기능을 구현하기 위해서 코드를 짜는 것이 단순히 아무렇게나 아는 것들을 모조리 집어 넣어 하는게 아니라는 것이다. 문제를 풀었을 때 내가 쓴 코드와 정답을 보면 내 코드가 훨씬 길고 복잡하게 작동하는 경우가 많았다. 어떻게 코드를 작성해야 좀 더 간단하면서도, 효율적으로 할 수 있을지 생각해야한다는 것이다. 1. 파이썬 데이터의 자료형에 따라 aliasing이 일어날 수 있다. (dict, list) 2. list(x)로 값을 복사한뒤 변수를 지정해주면 aliasing을 방지할 수 있다. 3. 리스트와 문자열을 비슷한 부분이 많고, 활용할 수 있는 부분도 있다. 4. list(string)를 통해 문자열을 리스트로 한번에 만들어 수정할 수 있다. 5. list.r..

[2021.09.13] 7번째 파이썬 공부 : 주말에는 쉬어야할까?

금요일에 for 반복문과 range 함수를 공부하고, 월요일에 그 다음강의인 사전에 대해 공부했다. 근무와 공부를 동시에 하고 있는만큼, 평일에 빡세게 하고 주말에 쉬자는 생각으로 토요일, 일요일에는 코딩 공부를 손도 대지 않았다. 그렇다고 해서 주말에 딱히 제대로 놀거나 다른 활동을 한 것도 아니다. 주말에도 한 챕터 정도는 들을 필요가 있어보인다. 다음 주말은 추석 연휴라 실천할 수 있을 지 모르겠지만... 1. for 반복문을 사용하면 상황에따라 while 보다 간단하게 구현할 수 있는데, 리스트에서 하나씩 값을 불러오는 형태다. 2. range 함수는 파라미터 1개, 2개, 3개로 메모리 효율성을 높이고 for문과 사용할 수 있다. 3. 거듭제곱은 x ** y 로 계산할 수 있다. 4. 마이너스 ..