크크루쿠쿠

[Week1] Python Basics for AI & AI Math_Overview [Day3] 본문

DeepLearning/부스트캠프 AI Tech

[Week1] Python Basics for AI & AI Math_Overview [Day3]

JH_KIM 2021. 8. 4. 17:32

Python data structure

Stack

LIFO 형식의 자료구조

리스트를 사용해 구현가능

Queue

FIFO -형식의 자료구조

이 또한 list를 통해 구현가능

Tuple

값의 변경이 불가능한 리스트

→ 데이터가 변하면 안될 때 사용

Set

값을 순서, 중복 없이 저장하는 자료형

집합연산 가능

Dict

데이터를 저장할 때 구분지을 수 있는 값과 함께 저장

key와 value를 매칭

→ 다른 언어에서 hash table로 불림

Namedtuple

Tuple 형태로 Data 구조체 저장

Pythonic code

List comprehension

일반적으로 for+append 보다 빠름

Enumerate & Zip

enumerate → list 같은것들 추출할 때 index와 같이 추출

zip→ 여러개의 list를 병렬적으로 추출

Lambda

함수명 없이 사용가능한 익명함수

Python 3 부터는 권장하지 않으나 여전히 많이 쓰임

Map

시퀀스형 데이터가 있을 때 어떠한 함수를 각각 적용해주는것

→ mapping 해주는것

Reduce

Map과 비슷하지만 통합한다는 점이 다름

→ 대용량의 데이터를 다룰때 종종 사용함\

Generator

Iterable Object를 특수한 형태로 사용하는 함수

element가 사용되는 시점에 값을 메모리에 반환한다

for문같이 호출을 해야만 알 수 있음 → 주소값만 가지고 있음

generator comprehension

gen_ex = (n*n for n in range(500))
print(type(g))

튜플이랑 헷갈리지 않기

→ 메모리 아낄려고 쓴다

가변인자

개수가 정해지지 않은 변수를 함수의 parameter로 사용하는 방법

Asterisk(*) 기호를 사용함

Python Object Oriented Programming

객체: 속성 (Attribute) 와 행동 (Action)을 가짐

OOP는 이러한 객체 개념을 프로그램으로 표현

속성 → 변수 행동 → 함수

method 구현 시에는 반드시 self를 parameter로 받아줘야 class 함수로 인정이 된다

상속 (Inheritance)

부모클래스로 부터 속성과 method를 물려받는것

Polymorphism

같은 이름 메소드지만 내부 로직을 다르게 작성하는것

상속에서 주로 발생한다.

Visibility

encapsulate처럼 누구나 객체안에 모드 변수를 볼 필요가 없음

딥러닝 학습방법 이해하기

오늘부터는 비선형모델인 nn을 공부

Softmax

모델의 출력을 확률로 해석할 수 있게 변환해줌

분류 문제 → 선형 모델 + 소프트맥스

신경망은 선형모델과 activation function이 합성된 함수임

활성함수란 비선형 함수로써 최근에는 ReLU를 대부분 씀

학습원리 : 역전파 알고리즘

Chain rule을 사용한 역전파 알고리즘으로 각층에 사용된 parameter를 학습해줌

확률론

딥러닝은 확률론 기반의 기계학습 이론임

회귀 분석에서 L2-Norm은 오차의 분산을 최소화하는 방향으로 학습

이산확률변수

확률변수가 가질 수 있는 모든 경우의 수를 고려하여 더해 모델링

연속확률변수

연속형 확률변수는 데이터 공간에 정의된 확률변수의 밀도 위에서의 적분을 통해 모델링함

조건부확률

P(y|x) 는 입력변수 x 에 대해 정답이 y일 확률을 의미

로지스틱에 사용한 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용

기대값이란?

데이터를 대표하는 통계량

몬테카를로 샘플링

확률분포가 뭔지 모를 때가 대부분

→ 몬테카를로 샘플링을 사용하여 기대값 계산

Comments