전체 글

개인공부/데이터 사이언스

편향과 분산

머신러닝에서 편향과 분산은 모델의 성능을 평가하고 최적화하는 데 중요한 역할을 한다. 편향은 모델의 예측값이 실제값과 얼마나 차이가 나는지를 나타내며, 분산은 예측값들이 얼마나 넓게 퍼져있는지를 보여준다.   이미지에서 볼 수 있듯이, 높은 편향과 낮은 분산을 가진 모델은 단순한 패턴을 보이며 데이터의 복잡성을 제대로 잡아내지 못해 과소적합 상태에 빠진다. 반면, 낮은 편향과 높은 분산을 가진 모델은 데이터의 노이즈까지 학습하여 과대적합 상태가 된다.좋은 모델을 만들기 위해서는 편향과 분산 사이의 균형을 찾는 것이 중요하다. 하지만 이 둘은 서로 상충관계에 있어, 하나를 개선하려고 하면 다른 하나가 악화되는 경향이 있다. 따라서 모델 개발자는 적절한 복잡도를 가진 모델을 설계하여 두 요소 사이의 최적점을..

개인공부/데이터 사이언스

앙상블 기법

앙상블(ensemble) 기법은 머신러닝에서 여러 모델을 결합하여 더 강력하고 안정적인 예측 모델을 만들기 위한 방법이다. 앙상블 기법에는 대표적으로 배깅(bagging), 부스팅(boosting), 스태킹(stacking) 방식이 있다. Bagging 배깅은 Bootstrap Aggregating의 약어로, 중복을 허용하는 샘플링을 통해 여러 개의 모델을 병렬적으로 학습하고 각 모델의 예측을 평균 또는 투표를 통해 결합하는 방식이다. 즉, 전체 데이터에서 데이터를 중복 선택하여 모델을 여러 개로 늘리는 것이다. 이를 통해 모델의 분산을 줄여 과적합을 방지하고, 안정적인 예측을 가능하게 한다. Boosting 부스팅은 단일 모델로는 성능이 낮은 약한 학습기들을 순차적으로 학습시켜, 이전 모델이 실패한 샘..

학교공부/컴퓨터 네트워크

Network Layer: Control Plane

Forwarding and Routing네트워크에서 데이터 패킷을 라우터의 입력에서 적절한 라우터 출력으로 전송하는 것을 Data Plane이라고 한다. 이는 패킷을 전달하는 역할을 수행한다. 반면, 라우팅은 소스에서 목적지까지 패킷이 이동하는 경로를 결정하는 것을 말한다. 이는 Control Plane의 역할로, 네트워크에서 라우터들이 어떻게 동작해야 하는지 결정한다. 네트워크 Control Plane을 구성하는 두 가지 접근 방식이 있다. 첫 번째는 기존의 개별 라우터 제어(per-router control) 방식으로, 각 라우터는 독립적으로 동작하며 자신의 결정을 내리는 방식이다. 두 번째는 소프트웨어 정의 네트워킹(software defined networking)에서 사용되는 논리적으로 중앙 집..

학교공부/컴퓨터 네트워크

Network Layer: Data Plane

송신 호스트로 전송된 세그먼트는  데이터그램으로 캡슐화된다. 그 후 네트워크 계층을 통해 라우터를 거쳐 수신 호스트로 전달된다. 수신자는 데이터그램을 받아서 세그먼트를 추출한다. 또한 라우터는 IP 데이터그램을 한 뒤, 입력 포트에서 출력 포트로 이동시킨다. 네트워크 계층의 기능에는 두 가지가 있다:포워딩(Forwarding): 라우터의 입력 링크에서 패킷을 적절한 출력 링크로 이동시키는 과정이다. 포워딩은 환승역에서 기차를 갈아타는 것으로 비유할 수 있다.라우팅(Routing): 소스에서 목적지까지 패킷이 전달되는 경로를 결정하는 과정이다. 라우팅은 여행을 계획하는 과정으로 비유할 수 있다.라우팅 알고리즘은 네트워크에서 패킷의 경로를 결정하는 데 사용되는 알고리즘이다. 이 알고리즘은 네트워크의 상황과 ..

학교공부/기계학습

[기계학습] 가중치 감쇠

Underfitting / Overfitting 머신러닝에서 underfitting과 overfitting은 모델이 데이터를 어떻게 학습하고 일반화하는지에 대한 중요한 개념이다. Underfitting: 이는 모델이 학습 데이터를 충분히 학습하지 못해, 데이터의 패턴을 제대로 파악하지 못하는 상황을 말한다. 이 경우, 모델은 학습 데이터에서도 낮은 성능을 보이며, 새로운 데이터에 대해서도 잘 예측하지 못한다. Underfitting은 주로 모델의 복잡성이 너무 낮아 발생하며, 이는 모델이 너무 단순하여(모델의 용량이 너무 작음) 데이터의 복잡성을 캡처할 수 없음을 의미한다. Overfitting: 반면에 overfitting은 모델이 학습 데이터를 너무 과도하게 학습하여, 특정 학습 데이터에만 과도하게 ..

학교공부/기계학습

[기계학습] 각 모델들의 Cost function과 Gradient

Linear Regression Linear regression에서의 MSE cost와 그 gradient는 다음과 같다. 다음은 그 유도 과정이다. Logistic Regression logistic regression의 cost function인 Cross Entropy(CE)의 classic form과 vector form은 다음과 같다. 그리고 CE의 gradient를 구하면 다음은 이를 증명하는 과정이다. Perceptron 다음은 perceptron의 cost function이다. 이를 통해 gradient를 구할 수 있다. Multi-Layer Perceptron 출력층 은닉층 결과적으로 다음과 같이 정리될 수 있다. Minibatch SGD algorithm Softmax Classifie..

학교공부/기계학습

[기계학습] Linear Regression Model

MSE cost Linear regression에서의 MSE cost와 그 gradient는 다음과 같다. 다음은 그 유도 과정이다. Normal Equations 아래와 같이 gradient 수식을 통해 가중치 값을 바로 구해낼 수 있다. 이 경우 gradient descent로 가중치를 지속적으로 업데이트 해줄 필요 없이 바로 최종 가중치 값을 얻어낼 수 있지만 inverse 계산이 필요하기 때문에 특성이 많아지면 오히려 속도가 느릴 수 있다. Polynominal Regression 고차항을 변수로 치환하여 Linear regression 문제로 환원하여 풀 수 있다. Feature Normalization feature 간 스케일이 다를 경우 cost function이 스케일이 큰 feature의..

학교공부/컴퓨터 네트워크

[컴퓨터 네트워크] Computer Network outline

The Internet 인터넷 네트워크의 기본 구성 요소는 다음과 같다: 수십억 개의 연결된 컴퓨팅 장치: 이들 장치는 '호스트' 또는 '엔드 시스템'이라고도 불리며, 인터넷의 "가장자리"에서 네트워크 애플리케이션을 실행한다. 패킷 스위치: 패킷(데이터 조각)을 전달하는 역할을 한다. 이에는 라우터와 스위치가 포함된다. 통신 링크: 광섬유, 구리, 무선, 위성 등 다양한 매체를 통해 데이터를 전송한다. 이러한 링크의 데이터 전송 속도는 '대역폭'으로 측정된다. 네트워크: 디바이스, 라우터, 링크 등의 모음으로서 특정 조직에 의해 관리된다. 인터넷은 이러한 구성 요소들이 복잡하게 연결되어 있어 전 세계적인 통신망을 형성하고 있다. 인터넷은 말 그대로 "네트워크의 네트워크"로, 다양한 종류의 네트워크가 상호..

학교공부/컴퓨터 네트워크

[컴퓨터 네트워크] Transport Layer

Transport services and protocols 전송 계층은 다른 호스트에서 실행되는 응용 프로그램 프로세스 간의 논리적 통신을 제공한다. 이 계층의 주된 역할은 데이터 전송을 관리하고, 오류를 검출 및 복구하며, 데이터 흐름을 제어하는 것이다. 전송 프로토콜이 종단 시스템에서 수행하는 작업들은 다음과 같다: 송신자: 응용 프로그램 메시지를 세그먼트로 분할하고, 이를 네트워크 계층으로 전달한다. 수신자: 세그먼트를 재조립하여 메시지를 만들고, 이를 응용 계층으로 전달한다. 인터넷 응용 프로그램에 사용 가능한 두 가지 전송 프로토콜이 있다: TCP (Transmission Control Protocol): 신뢰성 있는 스트림 서비스를 제공한다. 즉, 데이터는 순서대로 도착하며 중복되거나 누락되지..

학교공부/컴퓨터 네트워크

[컴퓨터 네트워크] Application Layer

Network application 네트워크 애플리케이션은 여러 다른 종단 시스템(End Systems)에서 실행되고 네트워크를 통해 서로 통신하는 프로그램을 작성하는 과정이다. 예를 들어, 웹 서버 소프트웨어는 브라우저 소프트웨어와 통신한다. 여기서 "종단 시스템"이란 사용자가 직접적으로 사용하고 제어할 수 있는 장치를 의미한다. 이러한 종단 시스템에는 개인용 컴퓨터, 스마트폰, 태블릿 등이 포함될 수 있다. 네트워크 애플리케이션을 개발할 때 중요한 점은 네트워크 핵심 장치(Network-core devices)에 대한 소프트웨어를 작성할 필요가 없다는 것이다. 네트워크 핵심 장치들은 라우터나 스위치 같은 장비로서, 데이터 패킷의 전송 및 라우팅 등의 기능을 담당한다. 이런 장치들은 일반적으로 사용자 ..

Dev_Camp
연구자의 노트