본문 바로가기

전체 글

(8)
[Machine Learning] Bias-Variance Tradeoff Underfitting and Overfitting 모델을 학습시키다보면 여러 문제들을 직면하게 됩니다.언더피팅과 오버피팅은 모델에 있어서 중요한 현상이라고 볼 수 있습니다. 언더피팅(과소적합)은 지나치게 단순한 모델로 인해 학습데이터에서도 성능이 떨어지는 현상을 말합니다.모의고사와 수능 전부 형편없는 성적을 받는 경우입니다 학습 반복횟수가 너무 적은 경우모델이 너무 단순한 경우 발생할 수 있습니다. 오버피팅(과대적합)은 학습데이터에서는 뛰어난 성능을 보이지만,테스트 데이터에서는 성능이 떨어지는 현상을 말합니다.모의고사는 잘 봤는데, 수능에서는 성적이 형편없는 경우입니다. 모델이 너무 복잡한 경우학습데이터가 부족한 경우발생할 수 있습니다. 각 모델의 최고차수에 따른 데이터 적합도입니다.degree 0의 ..
[Machine Learning] Logistic Regression 회귀모델은 연속적인 값(집값예측과 같은)을 예측하는데 사용되곤 합니다. 하지만 어떤 종양이 암인지 아닌지를 예측해야되는 상황도 우리 주변에 있습니다.이때 사용되는것이 로지스틱 회귀입니다. 로지스틱 회귀는 데이터가 어떤 범주(category)에 속할 확률을 0에서 1사이의 값으로 예측하는 모델입니다.확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류 해주는 것이죠 선형회귀의 출력값은 -∞ ~ +∞ 사이에 있지만분류 문제의 출력은 0 또는 1입니다. 분류 문제에서는 값이 아니라 맞거나 틀릴 확률을 예측해야합니다. LogOddsOdds 는 사건이 발생할 확률을 발생하지 않을 확률로 나눈 것입니다.LogOdds는 Odds에 Log를 취한 값입니다.우리가 구하는 값은 사건이 발생할 확률로, 위 식을 P(y ..
[Machine Learning] Gradient Descent Gradient Descent 회귀모델은 가중치(w)와 편향(b)를 찾는 것이 중요하다고 했습니다.이를 찾는 방법 중 하나가 Gradient Descent(경사하강법)입니다. 경사하강법은함수의 값이 낮아지는 방향으로 각 독립변수들의 값을 변형시키면서함수가 최솟값을 갖도록 하는 탐색 방법입니다.위는 비용함수를 미분한 그래프로, 그래프의 최소점이 모델에 가장 적절한 값이 됩니다.우리는 이 그래프의 기울기가 0이 되는 지점을 찾아 비용이 최소가 되는 지점을 찾아야 합니다. 경사하강법은 아래와 같은 수식을 사용합니다. x_k : 현재 step에서의 x 값x_k+1 : 다음 step에서의 x값dy/dx(x_k) : 현재 x값에서의 기울기alpha : step size를 결정하는 파라미터 alpha를 통해 수렴속도..
[Machine Learning] Regression 앞서 우리는 머신러닝이 무엇인지에 대해 알아봤습니다.이중 지도학습 방법에서 사용되는 회귀모델에 대해 이야기 해보겠습니다. 회귀(Regression)는 주어진 입력변수(독립)와 추력변수(종속, 예측하려는 값) 사이의 관계를 모델링하는 방법입니다.보통 독립변수와 종속변수 사이의 수학적 함수로 표현됩니다. 선형회귀(Linear Regression)는 독립 변수들과 종속 변수 간의 관계를 예측할 때, 즉 x와 y의 관계를 예측할 때, 그 사이 관계를 선형관계라고 가정을 하고 모델링하는 방법입니다. 보통 인자와 결과 간의 대략적인 관계 해석이나 예측에 활용됩니다. y = wx + b 형태로 독립변수가 1개일 경우, 단순선형회귀,y = w_1x_1 + w_2x_2 + ... + w_nx_n + b 형태로 독립변수가..
[Machine Learning] Machine Learning? 우리는 챗 지피티, 제미나이 등 다양한 AI 도구를 볼 수 있습니다.직접 찾아보지 않아도 무언가 궁금한게 있다면 사용자들에게 정리해서 알려주기도 하고, 필요한 코드를 작성해주기도 합니다. 머신러닝은 이러한 인공지능의 하위 개념으로, 컴퓨터가 명시적으로 프로그래밍 되지 않고도 학습할 수 있는 능력을 이야기 합니다. 데이터의 패턴을 스스로 학습해 예측값을 도출해 내는 것이죠. 머신러닝은 크게 지도학습[Supervised Learning], 비지도학습[Unsupervised Learning], 강화학습[Reinforce Learning]으로 나눌 수 있습니다. 지도학습은 정답이 있는 데이터를 활용해 데이터를 학습하는 방법으로, 모델에게 정답지를 준 후, 이를 바탕으로 일련의 패턴을 찾아 학습되지 않은 inpu..
[소프트웨어 공학] 소프트웨어 개발 방법론 소프트웨어 개발 전 과정에 지속적으로 적용할 수 있는 방법, 절차, 기법을 소프트웨어 개발 방법론이라고 합니다. 이는 소프트웨어를 개발함에 있어 생산성과 품질을 향상시키는데요, 현재 가장 많이 활용하는 방법론으로 볼 수 있습니다. 소프트웨어 개발 방법론은 분석, 설계, 구현, 테스트로 나눌 수 있습니다.분석 : 개발 준비, 시스템 요구사항 분석, 소프트웨어 요구사항 분석설계 : 시스템 설계, 소프트웨어 구조 및 상세 설계구현 : 코딩 및 단위 시험테스트 : 소프트웨어와 시스템 통합 및 테스트, 소프트웨어 설치 및 인수 지원1. 구조적 방법론1970년대까지 가장 많이 적용되었던 방법론으로, 구조적 분석을 통해 고객의 요구사항을 자료 흐름도(Data Flow Diagram)로 표현합니다. 자료 흐름도란 프로..
[소프트웨어 공학] 소프트웨어 개발 수명 주기 소프트웨어 개발 수명주기(SDLC)는 품질, 비용, 일정 관리의 균형을 체계적으로 잡아준다는 점에 있어서 중요한 요소입니다. 단계별 검증과 피드백으로 오류를 빠르게 발견해 품질을 확보하고, 계획-설계-구현-테스트의 흐름을 명확히 해 재작업과 일정 지연을 줄여 비용과 시간을 절감할 수 있죠. 요구사항 변경, 기술적 위험을 단계적으로 통제해 리스크를 관리 할 수 있습니다. SDLC는 소프트웨어 개발 방법론의 바탕이 되며 각 단계별 산출물이 존재합니다. 1. 폭포수 모델폭포수 모델은 과거에 폭넓게 사용되던 방식으로 정해진 단계를 한번씩만 진행하며 이전 단계로 돌아갈 수 없습니다. 다음 단계로 넘어가기 위해선 단계별로 결과물이 명확히 도출되어야 합니다. 이러한 특성들 때문에 메뉴얼 작성은 필수죠. 폭포수 모델은..
[소프트웨어 공학] 소프트웨어 공학이란? 소프트웨어 공학은 최소의 비용과 시간을 통해 높은 품질의 소프트웨어를 도출하기 위한 모든 수단과 도구들을 일컫는 말입니다.그렇다면 소프트웨어란 무엇이고 어떤 것들이 있을까요? 1. 소프트웨어소프트웨어의 사전적 정의는 컴퓨터 시스템을 효율적으로 운영하기 위해 개발된 프로그램의 총칭으로, 크게 응용, 시스템 소프트웨어로 나눕니다. 상업적 목적이나 판매를 목적으로 개발되는 상용 소프트웨어, 하드웨어를 제어하는 작은 규모의 소프트웨어인 펌웨어도 존재합니다. 응용 소프트웨어는 특정 업무나 기능을 처리하기 위한 소프트웨어 입니다. 우리가 보통 애플리케이션이라고 하는 것들이 이에 해당합니다. 응용 소프트웨어는기업용 소프트웨어영상 처리 소프트웨어CG/VR 소프트웨어콘텐츠 배포 소프트웨어자연어 처리 소프트웨어음성 처리..