반응형

분류 전체보기 31

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
반응형