Boostcamper's TIL (1)

최현진·2021년 8월 3일
0

boostcamp

목록 보기
1/20

2021/08/02

학습한 내용

Python Basic

캠프 기간동안 주로 사용하는 언어인 Python을 공부한다. 한 주간 들어야하는 Python 강의는 아주 기초적인 내용부터 시작한다. 학교를 다니는 동안 Java, C++, C, Javascript 등 다양한 언어로 프로젝트를 해봤다고 방심하다 가끔씩 움찔할 때가 있다.

특히 Pythonic code 강의를 들으면서 파이썬스럽게 코딩하는 방법을 배웠다. 가장 인상 깊었던 내용은 리스트 컴프리헨션을 사용해 코드를 더 깔끔하게 작성하라는 것이었다.

# 리스트 컴프리헨션
# number = []
# for n in range(0, 10):
# number.append(n)
number = [x for x in range(0,10)]

내가 정말 좋아하는 교수님께서는 코드를 짧게만드는 기법을 굉장히 싫어하셨다. (ex. 삼항연산자)
그 이유는 나중에 내가 내 코드를 볼때나 다른 사람이 코드를 볼때 자칫 잘못하면 이해하기 힘들 수 있기 때문이라고 하셨다.

그래서 python의 이러한 특성을 받아들이기 힘들었다. 내 눈에는 읽기 힘들어 보여서 그랬는데 마스터님께서 오히려 이러한 요소들이 다른 사람이 봤을 때 더 쉽고 이해하기 편한 기법이라고 알려주셨다.

다른 사람이 쉽게 이해할 수 있는 코드로 작성해야 하는 이유

  • 가장 중요한 것은 동료와 협업을 위해
  • 딥러닝을 학습할 때 python 라이브러리 및 다른 모듈을 많이 사용한다
    -> 나도 코드를 읽을 수 있어야 한다.

1주 동안은 Python 기초 문법 위주 강의기 때문에 가벼운 마음으로 듣고 있다.


AI Math

딥러닝에 필요한 기초 수학을 1주동안 배운다. (선형대수, 확률 통계, ...)
수학은 정말 기본도 없어서 캠프 시작 전부터 참 걱정이 많았다. 강의를 듣고도 잘 이해가 되지 않아 주말에 따로 공부좀 더 해서 내용을 보충해야 할 것 같다.
오늘은 벡터와 행렬 그리고 경사하강법에 대해 학습하였다.

벡터

벡터의 기본 연산 및 성질을 이해하였고 L1-노름, L-2노름의 차이점과 공식을 배웠다.
L-2노름을 이용하여 두 벡터 사이의 거리 및 각도도 이제 구할 수 있다.
살다 보니 두 벡터(x, y)의 내적도 구할 수 있게 되었다.

행렬

행렬의 기본 연산 및 성질을 배웠다.
행렬은 데이터X를 다른 차원으로 보내준다.<-인공지능에 수학이 필요하다는 느낌을 처음 받았다.
살다 보니 무어-펜로즈 역행렬을 구할 수 있게 되었다.

무어-펜로즈 (Moore-Penrose) 역행렬 : 역행렬을 계산할 수 없을 경우 A 행렬에 곱하여 항등 행렬에 가까운 행렬을 유도할 수 있는 행렬

경사하강법

함수 f의 주어진 점에서 접선의 기울기는 미분이라고 한다.
이 미분을 가지고 더하거나 빼서 극소값과 극대값을 찾을 수 있다.
경사하강법은 미분값을 빼는 것이고 극소값의 위치를 구할 때 사용한다.
우리의 데이터는 다변수 함수인 벡터를 입력으로 받으므로 편미분을 알아야 한다


부스트캠프 시작하는 날 새벽 6시에 일어났다.
같은 조로 편성된 캠퍼 분들 다들 대단하신분들 같다...
수학은 사실 이미 들었던 내용 복습인데 완벽하게 까먹었다.

profile
Boostcamper!

0개의 댓글