-
TIL
Conv1D, Conv2D, Conv3D 차이
말 그대로다. 1차원 배열 데이터에는 Conv1D를, 2차원 배열 데이터에는 Conv2D를 사용한다. 아직까지 Conv3D를 사용해 본 적은 없지만 마찬가지로 3차원 배열 데이터에 사용한다. 즉, Conv1D, Conv2D, Conv3D 차이는 입력 데이터의 차원이다. 그런데 여기서 끝나면 의문이 생긴다. 코드를 보자. model = tf.keras.models.Sequential([ # Note the input shape is the desired size of the image 150x150 with 3 bytes color tf.keras.layers.Conv2D(64, (3,3), activation='relu', input_shape=(150, 150, 3)), tf.keras.layers.M..
-
TIL
sigmoid보다 tanh를 쓰는 이유
1. sigmoid보다 tanh의 기울기가 더 크기 때문이다. 기울기가 더 크면 경사 하강법을 할때 더 큰 step으로 W와 b를 업데이트할 수 있으므로 더 빨리 cost를 0으로 만들 수 있다. cost는 0에 가까울수록 성능이 좋으므로 일반적으로 sigmoid보다 tanh가 성능이 더 좋은 것이다. 2. 기울기 편향을 피할 수 있다. 그래프를 보면 sigmoid는 (0,1)의 범위를 가지고 있고, tanh는 (-1,1)의 범위를 가진다. 모든 입력 벡터가 양수값을 가지고 있을때, 양의 값만을 가지는 sigmoid는 역전파를 할 때 모든 가중치가 같은 방향으로 움직이게 된다. 모두 증가하든지, 모두 감소하든지 말이다. 즉, 이동 방향이 편향될 수 있다는 단점이 있다. 하지만 tanh는 (-1,1) 범위..
-
프로젝트
파이썬(Python)으로 만든 게임 - Catch Turtle
이라는 수업에서 한 개인 프로젝트이다. 수업명과는 달리 데이터 분석과 관련된 내용은 전혀 배우지 않았고 파이썬 수업이라 해도 과언이 아니었다(지금은 팀티칭으로 달라졌다고 들었다.) 프로젝트도 게임을 기획하고 파이썬으로 개발하는 것이었다. 게임에 대해 간단히 설명하자면, Catch Turtle, 말 그대로 거북이를 잡는 게임이다. 거북이는 오른쪽(200,0), 왼쪽(-200,0), 위쪽(0,200), 아래쪽(0,-200) 중에 랜덤으로 나타난다. 그러면 키보드 방향키를 이용하여 거북이를 잡아야 한다. 거북이가 나타나는 방향과 키보드 키의 방향이 일치하면 1점을 얻는다. 제한 시간은 20초이고, 게임의 재미를 더하기 위해 거북이가 나타나는 속도는 0.1초에서 1초 사이 랜덤으로 정했다. import turt..
-
프로젝트
바이브 코딩으로 11번가 리뷰 요약 서비스를 만든다면? (1)
(1) AI 기획자와 20만 건의 데이터 파이프라인 구축 1. 프롤로그: 바이브 코딩, 그리고 11번가에서의 고민개발자로서의 성장을 위해 '바이브 코딩'을 시작했을 때, 가장 먼저 든 생각은 "새로운 기술을 단순히 배우는 데 그치지 말고, 내가 몸담은 11번가의 실제 문제를 해결하는 데 써보자"였습니다. 단순히 기능을 만드는 것을 넘어, 고객이 쇼핑 과정에서 겪는 진짜 불편함을 기술로 해결해보고 싶다는 욕심으로 두 가지 아이템을 떠올렸습니다. 첫 번째는 '리뷰 요약'입니다. 경쟁사들은 이미 제공하고 있는 기능이 11번가에는 부재하다는 점이 아쉬웠습니다. 저 또한 소비자로서 수많은 리뷰를 일일이 읽는 피로감 없이, 반품이나 교환 걱정 없는 '현명한 소비'를 하고 싶다는 니즈가 강했습니다. 두 번째는 'AI..
-
Scikit-learn
LightGBM 정리
개념 LightGBM은 기존 GBDT (Gradient Boosting Decision Tree)의 한계를 극복하기 위해 만들어진 모델로, 같은 accuracy를 유지하면서 계산 속도는 더 빠르고 메모리 사용량은 더 적은 GBDT이다. GBDT (Gradient Boosting Decision Tree)란? GBDT에서 gradient는 손실 함수의 그래디언트(gradient)가 아니라 예측값과 실제 타깃값의 잔차(residual)를 의미 GBDT는 손실 함수를 최소화하는 모델을 만들기 위해 이러한 잔차를 줄이는 방향으로 모델을 학습 각 트리는 이전 트리가 만든 잔차에 대해 학습하며, 잔차에 대한 예측값의 그래디언트를 기반으로 합니다. cf) boosting은 약한 학습기(분류기/예측기)를 여러 개 연결..