NAVER AI Tech/Python & AI math(16)
-
16. Gradient Descent
핵심은 미분. 미분 = 기울기!! - 기울기를 통해 loss가 최적해에 수렴하는 방향을 알 수 있다. - 구현 시 Gradient Descent 결과가 최적해(=극점)에 도달했을 때 기울기가 0 이므로 해당 지점에 도착했을 대 종료 조건이 필요하다.(정확히 0일 확률은 드물기 때문에 어느정도 오차범위를 설정해주어야 한다.) 현재 지점(var)에서 기울기가 양수 - 오른쪽으로 가면 상승, 왼쪽으로 가면 하강. 따라서 좌표상 왼쪽으로 이동해야하므로 var - (learning rate * grad) 현재 지점(var)에서 기울기가 음수 - 오른쪽으로 가면 하강, 왼쪽으로 가면 상승. 따라서 좌표상 오른쪽으로 이동해야 하므로 var - (learning rate * grad) - 이때 grad는 기울기. 기울..
2023.11.09 -
15. (Math) scalar, vector, matrix, tensor에 대한 정리
scalar : 3 vector : [1,2,3] matrix : [[1,2,3], [4,5,6]] 3-tensor, n-tensor vector : 공간에서 한 점을 나타냄. - 공간이 1차원, 2차원, 3차원이냐에 따라서 dimension이 달라질 수 있다.(리스트 길이가 dim을 뜻한다) - shape이 같을 경우 element-wise 합,차,곱,나누기 모두 가능하다. - Norm : 벡터의 크기. 즉 원점에서부터의 거리! 이때 L1 norm, L2 norm이 존재한다.(각각 맨하탄 거리, 유클리디안 거리라고도 부른다) matrix : 벡터를 원소로 가지는 2차원 배열 - shape이 같을 경우 element-wise 합,차,곱,나누기 모두 가능 - (n,m) * (m,k) 의 행렬곱은 (n,k)..
2023.11.09 -
14. Pandas
Series : Dataframe 중 하나의 Column에 해당하는 데이터 모음. - series operation : index를 기준으로 연산수행. 겹치는 index가 없으면 NaN값 반환 - 이때 fill_value=0 이라는 parameter를 사용하게 되면 겹치는 index가 없는 쪽은 0이라고 가정하고 연산을 수행한다. - Sereis + Dataframe operation : numpy이기 때문에 broadcasting이 일어나서 연산을 수행하게 된다. - map 함수를 적용도 가능. df.sex.map({'male':0, 'female':1}) -> 성별 column의 값이 문자열에서 정수형으로 변환된다. - replace 함수도 적용 가능. df.sex.replace({'male':0, ..
2023.11.08 -
13. Numpy
import numpy as np - 뭐 거의 세계 공용어. 약속같은거다. numpy array는 한가지 타입의 데이터만 저장할 수 있음. - 다양한 데이터를 가질 수 있는 리스트와는 다름. - 에러가 뜨진 않고 하나의 형식으로 통일해서 저장함. numpy array : array -> 메모리 주소가 연속적. Python list : Linked List -> 메모리 주소가 동적. scalar, vector, matrix, 3-tensor, n-tensor로 명명
2023.11.08 -
12 (Python) Data Handling
csv(Comma Separate Value) : 엑셀 양식의 데이터를 '프로그램에 상관없이 쓰기 위한 데이터 형식 HTML : web에서 제공하는 데이터 XML : HTML과 비슷한 형태. JSON : Java Script 데이터 객체 표현 방식 **결론 : 데이터는 다양한 형태로 제공되니까 어떻게 읽어올지 알아야한다. 요새는 pandas를 통해서 쉽게 불러올 수 있음~
2023.11.08 -
11. (Python) File, Exception, Log에 대해서...
Exception : 예외 처리 - try - except를 통해서 exception handling | try - except - finally - raise를 통해서 강제로 exception을 발생시키기도 한다. - ZeroDivisionError : 0으로 나누기를 했을 때 생기는 문제 - IndexError : List에서 index 범위가 넘어갈때 - NameError : 없는 변수를 호출했을 때 - FileNotFoundError : 파일을 찾을 수 없을 때 ** 사실 오류 문구를 보았을 때 구글하는게 ...... 그래도 대표적인 것들은 알아두자. File : Binary file or Text File - 메모장으로 열리면 Text File, 안열리면 Binary File - f = open..
2023.11.08