반응형

전체 글 31

[Kaggle Extra Study] 2. AutoEncoder

AutoEncoder란?AutoEncoder는 비지도 학습 신경망 모델로, 레이블되어 있지 않은 훈련 데이터를 사용하여 압축(인코딩)하고 다시 복원(디코딩)하는 과정을 통해 효율적인 데이터 표현을 학습합니다. 또한, unsupervised learning(비지도 학습)을 supervised learning(지도 학습) 문제로 바꿔서 해결한다고 표현할 수 있습니다.일반적으로 지도 학습은 입력 데이터 X와 타겟 데이터 y를 모두 사용하여 학습합니다. 반면, 비지도 학습은 입력 데이터 X만 사용하여 모델을 학습시킵니다.AutoEncoder의 특징은 입력 데이터 X만 주어지지만, 타겟 데이터도 X라는 점입니다: 원본 데이터 X를 입력으로 받고 재구성된 데이터 X'을 출력합니다. AutoEncoder의 목표는 X..

캐글 2024.10.22

[Kaggle Extra Study] 1. 지도 학습 vs. 비지도 학습

해당 포스트는 auto encoder를 학습하던 중 지도 학습과 비지도 학습에 대한 개념을 학습하기 위해 작성되었습니다. 지도 학습(Supervised Learning)지도 학습이란 머신러닝 모델이 데이터를 학습할 때, 학습하는 데이터가 레이블(label)되어 있는 경우를 말합니다.  지도 학습의 종류에는 크게 회귀(Regression)와 분류(classification)이 있습니다. 회귀는 훈련 데이터와 이에 매칭되는 타겟 변수의 값들(레이블)을 학습하여, 새로운 입력 데이터에 대한 출력 값을 예측하는 기법입니다.분류는 말그대로 훈련 데이터와 이에 매칭되는 레이블을 학습하여, 새로운 입력 데이터의 범주형(categorical) 클래스를 예측하는 기법입니다.비지도 학습(Unsupervised Learni..

캐글 2024.10.22

근황 - 2024.10.21

그동안 블로그 작성은 잘 못했지만 병특 근무를 위한 개인 공부는 어느 때보다 열심히 했었다. 운영하던 학교 수강평 웹 서비스를 크로스 플랫폼 모바일 앱 서비스로 개편하여 출시하였고, 크롤링을 공부하여 해외 구매 대행 사업자들이 무료로 쓸 수 있는 서비스를 개발해보기도 했다. 그렇게 개인공부를 하며 대학교는 졸업했고 한국에 돌아왔지만, 병특 채용을 약속했던 스타트업은 인수합병을 당해버려서 무산되어버렸다.  ‎쑤강평‎학교 수업들에 대한 수강평, 게시판 기능, 투두 기능 등을 포함한 학생들의 학업을 돕는 앱입니다.apps.apple.com 원래 병특 채용을 약속했던 기업은 구현 실력이 이론 혹은 cs 전반에 대한 배경 지식보다 중요한 시리즈 a 정도의 스타트업이었고, 채용을 약속받은 상태였기 때문에 이론적인 ..

캐글 2024.10.21

BE (3) - Express 백엔드 token 관련 해킹 예방하기

Access Token 의 문제점 여기서 지칭하는 Access Token은 단순히 아래 코드와 같이 jwt.sign() 을 이용해 반환받은 auth 관련 token 입니다. const accessToken = jwt.sign(userObject, secretKey); Refresh Token을 사용하지 않는 Express backend는 jwt.sign()을 통해 반환받은 Access Token이 하나만 있다면 해당 token을 갖고 계속 인증이 필요한 요청을 수행할 수 있습니다. jwt.sign()은 실행할 때마다 다른 token을 반환하지만 기본적으로는 과거에 반환한 token은 만료가 되지 않기 때문에 보안 상 관리하기 까다롭습니다. 임시 해결법 jwt.sign()으로 token을 발행할 때 tok..

개발 2024.01.31

BE (2) - PUT vs. PATCH

HTTP method는 기본적으로 서버에 어떤 작업을 수행할 것인지에 대한 정보를 전달하기 위해서 사용됩니다. 데이터를 서버에서 받아올 때 사용하는 GET method, 데이터를 서버에 등록할 때 사용하는 POST method, 서버에 있는 데이터를 삭제하기 위해 사용하는 DELETE method 등이 있습니다. 여러 method 들 중에서 데이터를 수정할 때 사용하는 method는 PUT 과 PATCH 두 가지가 있는데 이 둘의 차이점에 대해서 알아보도록 하겠습니다. PUT method 데이터를 '수정'한다는 느낌보다는 '교체'라는 단어가 더 잘 들어맞습니다. 데이터의 모든 필드의 값을 입력해야 되고 데이터 전체가 교체됩니다. //PUT { "username": "dongsunseng", "email"..

개발 2024.01.25

BE (1) - res.json() vs. res.send() vs. res.end()

res.json() vs. res.send() 기능상으로 수행하는 작업은 거의 동일합니다. res.json() 와 res.send()로 object를 보냈을 때의 차이점 object를 보내는 작업을 처리하는 순서에서 차이가 있습니다. res.json(): 1. 전달하려는 object를 문자열로 stringify합니다. 2. 만약 Content-Type header이 세팅되지 않았을 경우 res 객체의 Content-Type header를 this를 사용해서 "application/json"으로 세팅 해줍니다. 3. res.send()를 사용해서 stringify해준 object를 보내줍니다. → 1. res.json(object) 2. res.send(string) res.send(): 1. res.se..

개발 2024.01.24

복귀 - 2024.01.12

이전 포스트에 블로그를 꾸준히 해보겠다는 포부를 보였지만 갑자기 잠수를 탔었던 이유와 앞으로의 계획에 대해 말해보려고 한다. 일단 이번 학기는 학교 공부를 좀 열심히 해봐야겠다는 생각이 있었다. 뉴욕 본교에서 첫 학기여서 잘하고 싶기도 했고, 이번 학기는 장학금을 받고 싶다는 생각이 있었다(엄마의 무언의 압박 ㅋㅋ). 열심히 한 결과 나름의 성과는 있었다. 성적도 잘 나와서 장학금을 받을 수 있을 것 같고 이번학기는 사이드 프로젝트로 전에 만들었던 학교 수강평 웹사이트를 React Native로 모바일 앱으로 만들었다(85% 정도 완성). 이에 대한 자세한 내용은 '학교 수강평 사이트 개발 및 운영 도전기' 시리즈에서 다시 다루도록 하겠다. 앞으로의 계획 일단 졸업까지 한 학기를 남겨두고 있고 졸업 후에..

카테고리 없음 2024.01.13

ML/DL - Code CheatSheet

Numpy 1. __version__ : 버전 확인 import numpy as np print(np.__version__) 2. array() : 배열 만들기 my_arr = np.array([10, 20, 30], [40, 50, 60]) 결과값: [[10, 20, 30], [40, 50, 60]] 3. sum() : 배열의 각 요소를 모두 더한 값을 반환하기 넘파이 배열은 + 와 * 을 배열의 각 요소를 더하고 곱하는 작업이 가능하다. a = np.array([1, 2, 3]) b = np.array([3, 4, 5]) print(a + b) #결과값: array([4, 6, 8]) print(a * b) #결과값: array([3, 8, 15]) np.sum() 함수에 a * b를 전달하면 넘파이..

카테고리 없음 2023.07.22

캐글 도전기 (2) - 7/5 ~ 7/14

캐글에 대해 알게된 점: 1.0은 불가능하다 일단 캐글에 대해 새롭게 알게 된 점 한 가지가 있는데 캐글 뉴비들에게는 나름 헷갈릴 수 있을 것 같아서 짚고 넘어가려 한다. 캐글을 시작하면 타이타닉이나 주택가격예측 대회를 자연스럽게 거쳐가게 된다. 각 대회에 리더보드를 확인해보면 1.0의 정확도를 받은 사람들이 굉장히 많다는 것을 확인 할 수 있다. 이를 보고 글쓴이는 1.0의 정확도를 받는 것이 이 대회를 완벽하게 이해하고 더 정교한 데이터 전처리와 모델링을 통해서 나오는 이상적인 결과라고 생각했고 이를 위해 한참을 다른 사람들의 코드를 보며 연구했다. 그러던 중 놀라운 결과를 알게 되었는데 1.0의 정확도가 나오는 것은 불가능할 뿐만 아니라 이 대회의 목적이 아니라는 것이었다. 정확도라고 함은 학습 데..

카테고리 없음 2023.07.18

ML/DL(3) - 손실 함수와 경사 하강법의 관계

손실함수와 경사 하강법의 관계를 공부하며 헷갈리고 정확히 무슨말인지 이해가 안 가는 부분들이 있었는데 이들을 짚고 넘어가려 한다. 1. 왜 가중치와 절편을 업데이트하는데에 손실함수를 미분한 값을 사용하는가선형 회귀의 손실함수는 '제곱 오차(squared error)'로 예측값과 타깃값의 차이를 제곱한 것이다. 이때 제곱 오차가 최소가 되면 데이터의 경향을 가장 잘 표현하는 직선을 찾을 수 있는 것이다. 따라서 제곱 오차 함수의 최솟값을 알아내야 하는데 제곱 오차함수는 2차 함수이므로 기울기에 따라 함수의 값이 낮은 그래프의 최소에 가깝게 이동해야한다. 2차 함수인 이유는 아래와 같이 정리해보면 알 수 있다. x축을 가중치 $w$ 혹은 절편 $b$로 두고 y축을 손실함수로 두었을 때 손실함수의 최소로 이동..

캐글 2023.07.08

ML/DL(2) - 오차 역전파(backpropagation)

'오차 역전파'라는 단어를 이해하는 것은 이 분야를 공부하면서 본인을 처음 흠칫하게 한 부분이었다. 나 같은 입문자가 이해하기 위해서는 부가적인 설명이 필요하다고 생각되는 부분이므로 정리하고 넘어가야겠다.오차 역전파 backpropagation오차 역전파는 y(타겟 값)와 $ \hat{y} $(예측 값)의 차이를 이용하여 w(가중치)와 b(절편)을 업데이트합니다.정방향 계산일단 쉬운 정방향 부터.'정방향 계산'이란 $ \hat{y} $ 을 구하는 과정을 말한다. 그냥 $ b + \sum_{i=1}^{n}w_{i}x_{i} $ 의 계산이다. 역방향 계산'역방향 계산'이란 정방향 계산으로 구한 $ \hat{y} $와 $ y $의 오차를 통해 $ w $와 $ b $의 변화율(gradient)를 계산하는 과정이..

캐글 2023.07.08

ML/DL(1) - 로지스틱 회귀의 활성화 함수로 비선형 함수를 사용하는 이유

로지스틱 회귀는 이름에 '회귀'라는 단어가 들어가서 선형 회귀 등과 비슷한 알고리즘으로 착각할 수 있으나 분류 알고리즘이다. 로지스틱 회귀에 대한 기본적인 내용을 안다는 전제 하에 로지스틱 회귀의 활성화 함수로 비선형 함수를 사용하는 이유에 대해 알아보자.활성화 함수?로지스틱 회귀에서는 위의 이미지에서 볼 수 있듯이 선형 함수의 결과로 얻은 결과 값(z)를 변형시켜서 임계함수(threshold function)에 보내게 되는데 이 역할을 수행하는 함수를 활성화 함수(activation function)이라고 한다. 이후 활성화 함수를 통과한 값(a)를 임계함수에 넣어서 예측을 수행한다. 로지스틱 회귀에서 사용하는 활성화 함수는 '시그모이드 함수'로 비선형 함수인데 z 값을 0~1 사이의 값으로 변형시킴으..

캐글 2023.07.08

학교 수강평 사이트 개발 및 운영 도전기 (2)

해당 시리즈의 첫 번째 포스트를 아직 안 보셨다면 보고 오시는게 이해하시는데에 도움이 됩니다 :) 학교 수강평 사이트 개발 및 운영 도전기 (1) 글쓴이는 뉴욕의 주립대학교인 Stony Brook University의 글로벌 캠퍼스인 인천 송도 캠퍼스에 재학중인 학생이다. Technology Systems Management(기술경영)학과 전공, Computer Science(컴퓨터과학)를 첫 번째 부 dongsunseng.com 이번 포스트에서는 유저 설문조사 현황과 앞으로 어떤 부분들을 개선하면 좋을지, 어떤 새로운 기능을 넣으면 좋을지에 대해 이야기해볼 예정입니다. 1) 유저 설문조사 현황 이번학기 말에 랜덤추첨으로 스벅 기프티콘을 준다는 메시지와 함께 설문조사를 부탁하는 이메일을 유저 전체에게 보..

카테고리 없음 2023.07.05

캐글 도전기 (1) - 6/23 ~ 7/1

캐글에 도전하겠다고 마음을 먹었지만 공부를 어디서부터 얼마나 해야 될지 굉장히 막막했다. 그동안 다른 개발공부를 해오며 터득한 해결 방법은 무작정 비싸고 양이 많은 책이나 강의를 결제하기 보다는 쉬운 책 하나를 일단 정독하는 것이 방향성을 잡는데에 큰 도움을 준다는 것이었다. 캐글에 입문하며 본 첫 책은 '쉽게 시작하는 캐글 데이터 분석' 이었고 캐글 대회의 흐름을 맛본다는 소기의 목적은 달성한 것 같다. 책을 읽으며 간단한 데이터 분석에 대한 설명과 함께 캐글 대회의 공식 튜토리얼 대회인 타이타닉 대회와 주택 가격 예측 대회를 직접 해보며 데이터 분석의 흐름을 느낄 수 있었다. 이에 대한 내용을 공유하고자 한다 1) 데이터 분석 데이터 분석은 데이터 혹은 해당 일의 범위에 따라 그 목적도 다양함 - 예..

카테고리 없음 2023.07.04
반응형