본문 바로가기

AI44

퍼셉트론(Perceptron)과 활성화 함수(Activation Function)란? 딥러닝의 시작이라고 할 수 있는 퍼셉트론에 대해 알아보자. 생물이 무엇을 인식할때 어떻게 진행되는가?라는 아이디어를 컴퓨터에 응용한 이론이 퍼셉트론이다 퍼셉트론을 관통하는 이미지는 아래와 같다. 퍼셉트론(Perceptron)이란? 1957년에 프랑크 로젠블라트가 고안한 알고리즘으로 딥러닝(신경망)의 기본 단위이다. 다수의 신호를 입력을 받아 하나의 신호로 출력한다 위 그림과 같이 두 개의 노드(X1,X2)이 있을때 두 노드의 *가중치(w1,w2)만큼을 곱하여 그 조합의 합이 *임계값을 넘었을 경우 1을 출력하고 그렇지 않을 경우 0을 출력하는 것을 의미한다. 더보기 * 가중치(weight): 입력데이터의 중요도 * 편향(bias): 노드를 어떻게 활성화 할지 여부를 조절하는 역할 혹은 영향 * 임계값(c.. 2022. 4. 27.
WGSI와 구니콘(gunicorn)? 배포란? 내가 가진 무엇인가를 다른 사람이 볼 수 있도록 공유하는 것 오늘 공부할 것은 내가 만든 웹서버를 누군가에게 배포할 것. 웹서버의 구동방식 웹서버가 실행이되면 그 위에 우리가 제작한 코드 소스나, 리소스 정보가 포함되어야 웹 서버가 코드와 리소스를 이해하고 적절한 결과를 보여주게 된다. 지금까지 우리가 배운 플라스크는 워크 저그란 곳 위에 플라스크를 올려서 그 플라스크를 이해시킨 것이다. 하지만 워크저그는 개발용 서버(오늘 우리가 공부할 것은 앱서버)이기에 플라스크에 관련된 정보(자그마한 개발용 서버가)가 포함되어 있다. WSGI (Web Server Gateway Interfae) 개발되어진 웹 애플리케이션이나 api를 서버와 연결하기 위해 중간 역할을 하는 미들웨어이다. 예를 들어 FLASK.. 2022. 4. 14.
인터페이스(interface)와 API (Application Programming Interface)란? 인터페이스(Interface)란? 사물과 인간 사이 경계에서 상호간의 소통을 위해 만들어진 규칙 I/F로 축약되서 사용되어지기도 한다. API와의 차이를 이해하기 위해 입력과 출력을 예로 들면 되는데 인터페이스는 프로그램이 설계되기 전 즉 시스템 설계 단계에서 사용되는 입력과 출력이며 API는 프로그램 단계에서 사용되는 입력과 출력을 의미한다. 애플리케이션 프로그래밍 인터페이스(API)란? 프로그램 간 서로 소통(통신, 통합)을 가능하게 하기위한 인터페이스, 혹은 하나의 규칙 끊임없이 변하는 it판에서 유연성을 높이고 설계,관리,비용,사용방법들을 간소화(표준화) 시켜 혁신의 기회를 준다. 예로 API는 레스토랑의 주문으로 비유할 수있다. 손님(Client)이 메뉴(API)를 보고 웨이터(API Serve.. 2022. 4. 6.
트랜잭션(transaction)이란? ACID 란? 트랜잭션이란? 다수의 사용자가 동시에 사용하더라도 모순이 없는 정확한 데이터를 유지하기 위해 데이터 베이스가 일관된 상태를 유지하기 위해 데이터베이스의 연산을 모아놓은 것 데이터베이스의 상태를 변경하기 위해 읽기와 쓰기로 구성된 하나의 연속처리단위(작업의 단위) 논리적인 하나의 작업 단위이기 때문에 하나의 트랜잭션은 반드시 commit / rollback이 된다. 트랜잭션을 만족시키기위해 4개의 특징이 있는데 이것이 acid이다. ACID 이란? 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 하나의 성질이다. Atomoicity 원자성 트랜잭션 내 성공적으로 모든 오퍼레이션이 커밋, 또는 롤백이 되야한다. 즉 트랜잭션과 관련된 작업들이 부분적으로나 실행 중 중단되지 않는 것을 보장해야 한.. 2022. 3. 30.
부분의존도그림(Partial dependence plot, PDP)란? 부분의존도그림이란 부분 의존도 그림은 특성의 값에 따라서 타겟값이 증가/감소하느냐와 같은 어떻게 영향을 미치는지에 대한 정보를 파악할수있다. 즉 머신러닝 모델의 예측 결과에 대해 하나 또는 두 개의 특성이 갖는 한계 효과(marginal effect)를 보여준다는 의미이다. 부분 의존도 그림은 대상과 특성 사이의 관계가 선형인지, 단조로운지 또는 더 복잡한지 여부를 표시할 수 있다. 특성 하나를 표현하면 2d작업이 진행되고 두 특성은 3d 형태를 띄기 때문에 더 이상의 표현은 어렵기에 2개까지만 표현한다고 함 2022. 3. 15.
데이터 랭글링(Data Wrangling)이란? 데이터 랭글링이란? 데이터 랭글링은 분석을 하거나 모델을 만들기 전에 데이터를 사용하기 쉽게 원천 데이터(raw data)를 분석하기 좋은 데이터로 변환하는 작업을 의미한다. 데이터 랭글링은 총 5단계로 나눠지며 아래와 같다 Gather(데이터 모으기) - 스크래핑, API 등으로 데이터를 모으는 단계이다. Assess(데이터 평가하기) - 1단계에서 모은 데이터가 깨끗한지 아닌지 판단하는 단계이다. Clean(데이터 정제하기) - 2단계에서 평가한 데이터를 어떻게 정제할지, 코딩할지, 테스트하는 단계이다. Reassess and lterate (데이터 재평가) - 2단계로 돌아가 다시 데이터가 잘 정제되었는지 판단하며 필요한만큼 2~4과정을 반복한다 Store(데이터 저장) 2022. 3. 14.
특성 중요도(feature importance)란? 특성 중요도란?(feature importance) 결정트리에서 모델의 변화 정도를 파악하기 위해 사용되는 지표(?) 즉 종속변수에 미치는 독립변수의 영향력을 알아보기 위해 필요하다. (선형회귀모델에서는 회귀계수가 이 역할을 했다.) 특성 중요도의 합은 1이며 특성 중요도가 높은 feature 일수록 노드를 나눌 때 더 자주, 우선적으로 이용된다. 랜덤포레스트에서는 학습 후에 특성들의 중요도 정보(Gini importance)를 기본으로 제공한다. 평균 불순도 감소란? (Mean Decrease Impurity MDI) = ? MDG(gini) 특성 중요도의 계산을 하는 방법이다. 각 노드에서 해당 feature를 기준으로 분류(split)하는 지점에서의 decrease of impurity(불순도)의 .. 2022. 3. 14.
K-겹 교차검증(k-fold cross-validation) 이란? k-겹 교차검증(CV)이란 전체 데이터셋을 k개의 fold로 나누어 k번동안 다른 fold 1개를 test data 그리고 나머지(k-1)개의 fold를 train data로 분할하는 과정을 반복하며 train, test data를 교차 변경하여 검증하는 방법이다. k fold cv를 하기 위해 보통 5~10개의 fold를 사용하며 최적의 k값을 찾기 위한 실험적 검증이 필요하다. 아래와 같은 경우에는 CV 수행 시 오히려 모델 성능이 악화될 수 있다. - 순서가 고려된 데이터(시계열 데이터)가 shuffle 되어 있지 않은 경우 - 데이터 불균형(Data Imbalance) → 층화 교차검증(Stratified K-fold CV)을 통해 보완 - 각기 다른 fold에 같은 데이터(i.e., duplic.. 2022. 3. 7.