전체 글

호랑이는 죽어서 가죽을 남기고 개발자는 죽어서 기록을 남겨보자
· Retrospect
은행권 프로젝트를 나오고 약 1개월 정도가 흐르고 있다. 이직 후 첫 프로젝트이자 살면서 처음으로 회사에서 지원해준 숙소에서 출퇴근을 하고있다. 중소기업(5명 규모)의 머신러닝 엔지니어로 일했던 가장 처음 커리어에서 고객사에서 일하거나 재택으로 근무할 때의 생활과 현재의 컨설턴트 생활은 생각보다 많이 유사한 것 같다. 차이가 있다면 그때는 나 혼자 개발자였기에 프로젝트를 담당하는 PM이자 대표님이 있었어도 솔루션 제공이나 개발인력으로 참여했을 때 고객사에서 원하는 무언가를 개발하거나 제공하기 위해 내가 직접 고객사분들의 요구사항을 듣고 이를 충족시킬 수 있는 기술들을 직접 서베이하여 적용할 수 있었다. 지금에서야 주도적으로 일했던 좋은 경험이라고 할 수 있으나 그당시에는 좀 더 배우고 성장하기를 바래왔고..
· Retrospect
퇴사 이후 현재 직장 취업까지 약 5개월정도 걸린 것 같다 그 사이 약 100곳 이상의 다양한 회사에 데이터 분석 및 엔지니어링, 머신러닝 관련 직군으로 지원하였고 그 중 절반정도는 회신을 받지 못했고, 나머지 절반정도는 불합격 안내, 또 그 중 나머지 절반 정도에서 서류전형 이후 프로세스를 진행했던 것 같다. 최종적으로 합격하게 된 곳은 내가 이전에 다닌 중소 SI, 스타트업과는 굉장히 다른 포지션이었다. (알아보고 지원한거 맞냐?) 이전 직무들은 머신러닝 엔지니어, 데이터 사이언티스트였다. 머신러닝 엔지니어로 근무했던 회사는 총 인원 4명 중 나 혼자 개발 및 데이터 분석이 가능하여 각 프로젝트에서 우리에게 할당되었던 모든 개발, 분석 업무를 1년 6개월정도 혼자서 수행하였다. 초기 입사시에 인수인계..
RESTful API 웹 서비스와 클라이언트가 효율적으로 통신할 수 있게 하는 아키텍처 스타일로 널리 사용되고 있음 API? Application Programming Interface의 약자로, 소프트웨어나 시스템이 서로 상호작용하는 방식을 정의한 규칙과 프로토콜의 집합 간단히 말해, API는 한 프로그램이 다른 프로그램의 기능이나 데이터를 사용할 수 있도록 하는 '중개자' 역할 API를 사용하면 개발자는 복잡한 내부 작업을 이해하지 않고도, 다른 프로그램이나 서비스의 기능을 사용하거나 통합할 수 있음 예를 들어, 소셜 미디어 플랫폼의 API를 통해 해당 플랫폼에 게시하거나, 날씨 정보 서비스의 API를 사용해 애플리케이션에 날씨 데이터를 표시할 수 있음 이러한 방식으로 API는 다양한 ..
Stochastic Gradient Descent는 Batch Gradient Descent에 비해 최적값에 수렴할 가능성이 적으나, 적은 데이터를 사용하여 손실을 계산하고 모델을 업데이트 하므로 계산 속도가 빠르며 여러 번 반복할 경우 일반적인 batch 결과와 유사하게 수렴 가능하고 Batch Gradient Descent에서 빠질 지역 최소값에 빠지지 않고 더 좋은 방향으로 수렴할 가능성도 있음 ※ Batch Gradient Descent가 최소값에 수렴함을 보장한다고 하였으나 그 값이 지역 최솟값일지 전역 최솟값일지 모름 일반적으로 Neural Network를 학습시킬 때는 SGD를 사용함 단순히 SGD 방식만 사용할 경우 노이즈가 많고 안장점에서 방향을 잘 못잡거나 학습 속도에 문제가 있는 경우..
경사 하강법으로 손실 값을 최적화(optimization)하기 위한 최적화 알고리즘(optimizer)은 다양하며 대표적으로 세 가지 정도의 변형이 있으며, 목적 함수의 기울기 계산에 사용하는 데이터의 양이 다름 데이터의 양에 따라 최적인 최솟값을 찾는 정확성과 최솟값을 찾는 데 걸리는 시간 간의 균형을 맞추기 위해 다른 방법들을 적용할 수 있음 배치 경사 하강법 (Batch Gradient Descent, Vanilla Gradient Descent) 경사 하강법을 위한 기울기를 계산할 때, 모든 학습 데이터셋을 사용하여 손실(loss)을 계산한 뒤 손실이 최소가 되도록 모델의 가중치(기울기)를 업데이트 하는 방법 해당 방법에서 배치(batch)란 일부 데이터가 아닌 학습에 사용되는 전체 데이터를 의미..
경사하강법은 주어진 수학 함수의 최소값/최대값을 찾는 데 사용되는 반복적인 1차 최적화 방법 ※ 수학에서 최적화(optimization)의 의미 : 특정 집합 위에서 정의된 실수값, 함수, 정수에 대해 그 값이 최대나 최소가 되는 상태를 해석하는 문제 머신러닝 및 딥러닝에서는 일반적으로 손실 함수를 최소화하기 위해 사용됨 요구사항 일반적으로 경사하강법 적용을 위해서는 크게 두 가지 요구사항이 있음 미분 가능한 함수 함수에 불연속인 지점, 뾰족한(좌미분계수, 우미분계수가 다른 점) 지점에서는 미분 불가능 볼록한(Convex) 함수 하나의 변수를 갖는 일변량 함수의 경우 함수 내 임의의 두 점을 연결하는 선이 함수 곡선을 교차하지 않으며, 그 선이 곡선보다 위에 있는 함수 일변량함수가 볼록한지 아닌지 수학적..
활성화 함수(Activation Function) 인공신경망에서 노드의 입력은 가중치(w)와 편향(b)을 사용하여 선형 변환이 수행된 이후, 활성화 함수가 적용되어 다음 층으로 전달되거나 예측하는 출력값이 됨 이러한 정보의 흐름을 순방향 전파라고 함 손실 함수(Cost Function, 비용 함수, Loss Function) 모델에서 순방향 전파에 의해 출력된 예측값과 실제값 사이의 오차 계산을 위해 사용되는 함수 모델의 예측 성능을 평가하는 척도 역전파(Backpropagation) 위에서 얘기한 순방향 전파와 반대로 손실정보를 기반으로 모델의 가중치, 편향과 같은 파라미터 벡터를 업데이트하기 위해 모델에 전달하는 과정 경사하강법(Gradient Descent) 역전파는 단순히 가중치와 편향을 업데이트..
오차 함수는 머신 러닝 모델의 예측값과 실제값 간 차이나는 정도를 통해 현재 모델의 성능을 측정하는 지표로 사용됨 오차 함수는 크게 수치 예측 시와 분류 시로 나눌 수 있음 수치 예측 시 오차 함수 MSE(Mean Sqaure Error) 예측값과 실제값의 차이 제곱의 평균 회귀 모델의 주요 손실 함수로 사용됨 차이의 제곱에 인해 실제 값과 거리가 먼 예측(특이값)은 큰 페널티를 받음 RMSE(Root Mean Square Error) MSE 결과에 루트를 씌운 것 MSE는 오차의 제곱을 사용하기에 실제 오류 평균보다 커지는 특성이 있어 루트를 씌운 RMSE는 값의 왜곡을 줄여줌 MAE(Mean Absolute Error) 예측값과 실제값 간의 절대 차이 합계의 평균 이상값에 대해 더 강력함 RMSLE(..
신경망에서 노드에 들어오는 입력은 가중치와 편향을 사용하여 선형 변환이 수행되고, 변환된 결과가 바로 다음으로 전달되는 것이 아닌 활성화함수를 적용하여 전달됨 활성화함수는 입력 신호를 출력 신호로 변환해주며, 입력 받은 신호의 출력 정도를 결정하고 딥러닝에서 층을 쌓아 비선형성을 표현할 수 있게 함 Sigmoid 시그모이드 활성화 함수의 출력은 0
Windows 10, AMD CPU 환경에서 구성 테스트 완료 참고 자료 1. Flutter SDK 설치 flutter windows SDK 다운로드 후 압축 풀고 특정 위치에 배치 (C:\Program Files\ 처럼 권한 필요한 디렉토리에는 설치하지 않기를 권장) 나같은 경우 C:\flutter 에 위치하도록 구성하였음 2. 환경변수 편집 윈도우 키 + pause/break 키 고급 시스템 설정 환경 변수 사용자 변수 탭의 Path에 flutter 설치 경로 추가 추가 이후 명령 프롬프트 창 열어서 where flutter dart 입력 이후 flutter 설치 경로로 이동하여 flutter doctor 입력 나는 기존에 Android Studio가 설치되어 있지 않았고, VS Code를 개발환경으..
AIVILLAIN
뎁사유기