# ML/DL

149개의 포스트

[CNN]VGGNet 논문 리뷰

oxford의 Visual Geometry Group이 만든 CNN 신경망 레이어가 깊어질수록 파라미터의 수가 많아져 계산량이 늘고, 시간이 오래걸리는데, 이를 어떻게 극복했는지 볼 수있다. Reference > [VGGNet]VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION (2014) 0. introduction 저자는 CNN아치텍처 설계의 중요한 측면인 깊이를 깊게 하는것에 집중하여 성능을 개선시키고자 했다. 결과적으로 ImageNet dataset 뿐만 아니라 다양한 이미지 dataset에 대해서도 SOTA(state of the art)에 준하는 성능을 보여주었다. 1. convNet configurations ConvNet의 깊이가 증

5일 전
·
0개의 댓글
·

[CNN]AlexNet 논문 리뷰

Alexnet은 CNN기반 모델인 LeNet이 개발 된 이후 최초로 나온 large scale CNN이다. CNN에서 어떻게 많은 dataset을 처리하고 overfitting을 방지했는지 정리했다. Reference > [AlexNet]ImageNet Classification with Deep Convolutional Neural Networks(2012) 0. Introduction 객체인식을 위한 현대적 접근은, 성능을 끌어올리기 위해 많은 양의 데이터셋, 더 강력한 모델, overfitting을 막기 위한 더 나은 방법들을 사용하는 것이다. (그당시) CNN은 기존의 feedforward neural network들(eg.MLP)에 비하면 같은 데이터에 대해

2023년 9월 9일
·
0개의 댓글
·

CNN의 시작

CNN은 이미지와 같이 지역적인 패턴과 구조가 중요한 데이터를 처리하기 위해 설계된 신경망 모델이다. 이미지를 flatten 하여 MLP학습은 가능하나, 펼치는 행위에서 이미지의 지역정보(topological information)가 손실되며, 추상화없이 바로 연산을 하므로 학습 시간과 능률에 있어 매우 비효율적이다. 때문에 이미지의 지역정보를 잘 살릴 수 있는 receptive field concept를 이용한 CNN이 도입되었다 네트워크가 깊어지면(layer가 많아지면) 성능향상의 가능성이 생긴다. 중첩된 convolution 연산으로 인해 상위 레이어 각 뉴런 입력의 receptive field는 점점 커지게 되고, 따라서 중요한 맥락정보(Contextual Information)를 학습할 수 있고, 복잡한 패턴과 같은 고수준 특징을 얻을 수 있기 때문이다. 가능성이 생긴다는 것은, 일반적으로 layer를 많이 쌓아나가는 것은 학습데이터를 과하게 학습하

2023년 9월 9일
·
0개의 댓글
·
post-thumbnail

[ML/DL] Machine Learning 기본 (1)

1. ML 학습 프로세스 모델 객체 생성 : DecissionTree, Xgboost 등… 모델 객체의 fit 메서드로 학습 input : Xtrain, ytrain 학습 완료 → 모델 객체의 pred 메서드로 예측 input : X_test output: pred 정확도 측정으로 모델 평가 input: y_test, pred 2. 추가 활용 기법 KFold 교차 검증 객체 생성 → n_split 파라미터로 Fold수 지정 객체의 split 메서드를 통해 각 Fold에 해당되는 train, test 인덱스 추출 for문으로 각 fold에 해당하는 train, test 인덱스 호출 for문 내에 모델 학

2023년 8월 31일
·
0개의 댓글
·

[Pytorch 스터디] 1. 실습환경 세팅(MAC) with Docker

네이버 부스트코스 파이토치로 시작하는 딥러닝 기초 강의를 기반으로 작성하는 스터디 기록입니다. 강의를 통한 스터디를 진행하기 위해선, 첫 번째로 실습 환경을 설정해야 한다. 강의에서는 실습환경을 도커(Docker)를 이용해 세팅하기를 권장한다. 여기서는 파이토치 실습을 위한 도커 이미지 설치와 주피터 노트북 실행에 대한 내용만을 작성한다. 나머지 도커 사용법에 대한 내용은 다른 포스팅을 참고해주세요. 1. 도커 설치하기 https://www.docker.com/에서 Get Started 클릭하여 다운받고 설치한다. ![](https://velog.velcdn.com/ima

2023년 8월 22일
·
0개의 댓글
·

[ML/DL] window size와 batch size

시계열 분석을 통한 판매량 예측 프로젝트를 하다가 하이퍼 파라미터를 설정하는 과정에서 헷갈리는 부분을 정리해보았다. 사실 시계열 뿐만 아니라 대부분의 딥러닝을 할 때에도 적용될 것이다. window size와 batch size를 정할 때 너무 작아도 안되고, 너무 커도 안되는데 그 이유를 알아보았다. Window size Long-Term Patterns Capturing 시계열에서 Window size가 커지면 모델은 더 긴 기간의 패턴을 파악할 수 있다. 더 많은 과거 데이터를 포함하므로 장기적인 추세나 주기성을 더 잘 포착할 수 있다. Smoothing Effec 큰 Window size는 데이터의 노이즈와 튀는 값에 대한 영향을 줄일 수 있다. 평균화 효과로 인해 이상치나 노이즈가 덜 반영될 수 있다. Feature Extraction 큰 Window size를 사용하면 모델에 더 많은 정보를 제공할 수 있다. 더 많은

2023년 8월 20일
·
0개의 댓글
·
post-thumbnail

[End-to-End Neural Diarization data preparation 리뷰] Multi-Speaker And Wide-Band Simulated Conversations as Training Data For End-to-End Enural Diarization

업데이트 v0 (2023-08-19) 소개 이 글은 논문을 읽고 정리하기 위한 글입니다. 내용에 오류가 있는 부분이 있다면 조언 및 지적 언제든 환영입니다! ICASSP 2023에 올라온 논문입니다. (Paper, Github Citation Landini, F., Diez, M., Lozano-Diez, A., & Burget, L. (2023, June). Multi-Speaker and Wide-Band Simulated Conversations as Training Data for End-to-End Neural Diarization. In ICASSP 2023-2023 IEEE International Conference on Acoustic

2023년 8월 19일
·
0개의 댓글
·

지도학습

지도 학습은 입력과 출력에 대한 데이터 세트가 있고, 주어진 입력으로부터 출력을 예측하고자할 때 사용한다. 분류와 회귀로 나뉜다. 분류와 회귀 분류(classification)? >- 미리 정의된, 가능서있는 클래스 레이블 중 하나를 예측하는 것 >- 두개의 클래스를 분류하는 이진분류(yes or no), 셋 이상의 클래스로 분류하는 다중 분류로 나뉜다. >- (eg.스팸메일인가?- 이진분류, 붓꽃데이터 분석-다중 분류) 회귀(regression)? >- 연속적인 숫자:부동소수점수를 예측하는 것 >- 분류에 비해 출력값에 연속성이 있다. 일반화, 과대적합, 과소적합 일반화(generalization)? >- 훈련데이터로 학습한 모델이 훈련 데이터와 특성이 같다면, 신규 데이터도 정확한 예측을 기대 >- 신규데이터(테스트 세트)를 정확히 예측할 수 있다면, 훈련세트에서 테스트 세트로 일반화 된 것 >- 모델이 적절한 복잡도를 갖도록 훈련데이터

2023년 8월 8일
·
0개의 댓글
·

[선형대수]L1-norm과 L2-norm, 그리고 인공지능에서

개념 norm 선형대수학에서 놈은 벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법 Lp-norm L1-norm, L2-norm blue line이 L1-norm L1 Norm은 두 개의 벡터를 빼고, 절대값을 취한 뒤, 합한 것 Lasso 회귀에서 사용

2023년 8월 7일
·
0개의 댓글
·

[ML/DL] scikit-learn(사이킷런) 기본_혼공머신

scikit-learn : 머신러닝 오픈소스 라이브러리(패키지) 1. KNeighborsClassifier() 분류 모델을 만드는 사이킷런 클래스이다. n_neighbors 매개변수 : 이웃의 개수를 지정한다. default = 5. p 매개변수 : 거리를 재는 방법을 지정한다. 1일 경우 맨해튼 거리를 사용하고, 2이리 경우 유클리디안 거리를 사용한다. default = 2. n_jobs 매개변수 : 사용할 CPU 코어를 지정할 수 있다. -1로 설정하면 모든 CPU 코어를 사용한다. 이웃 간의 거리 계산 속도를 높일 수 있지만 fit() 메소드에는 영향이 없다. default = 1. 2. fit() 메소드 사이킷런 모델을 훈련할 때 사용하는 메소드이다. 두 개의 매개변수(특성 데이터, 정답 데이터)를 받는다. 3. p

2023년 8월 6일
·
0개의 댓글
·

[Numpy]default_rng, 새로운 난수 생성기

default_rng? default_rng는 NumPy 버전 1.17부터 추가된 새로운 난수 생성기(Generator)이다. random.seed에 비해 다양한 난수분포를 가질 수 있고, 여러개의 난수를 관리하는 등 강력한 기능을 제공한다. 예시코드 기본 사용법 여러개의 난수관리 활용 참고문헌 공식문서

2023년 8월 4일
·
0개의 댓글
·

[Pandas]Pandas 개요

pandas 공식 사이트 Pandas? >- 데이터 프레임을 이용해서 데이터를 시각화 및 분석할 수 있도록 해주는 라이브러리 >- 계량 경제학에서 사용하는 패널 데이터에서 따온 이름(Panel Data Sysytem)으로, 패널 데이터는 종단+횡단 성격을 갖는 데이터를 뜻한다.(한 시점 뿐만 아니라 시계열 데이터에도 강한 면모를 갖는다고 해석가능) >- 패널 데이터 구조를 제공하기 위해 넘파이(Numpy) 위에 구성되도록 개발, 넘파이에서 쉽게 사용가능 >- 대용량 데이터를 다루거나 빠른 연산이 필요한 상황에서 취약하기 때문에 위와 같은 이유로 판다스 코드를 추후에 넘파이로 수정하면 이를 해결 가능하다. 판다스의 대표적인 기능 >- 통합적인 인덱싱 데이터 처리를 위한 데이터프레임 객체 >- 인메모리(In-Memory) 데이터 구조를 가지며, 여러 파일 형식 데이터를 읽고 쓰기 위한 도구

2023년 8월 4일
·
0개의 댓글
·

[ML]Optimization (최적화)

Optimization for Deep Learning optimization은 decision science에서 중요한 툴로 사용된다. 예를 들어, 라이프가드와 바다에 빠진 사람이 존재한다. 이때 A, B, C 루트 중 하나를 선택하여 요구조자를 구할 것인지 결정해야하는 상황에서 시간최소화, 거리최소화, 요구조자 생존률 최대화 등의 다양한 방식을 통해 최적의 변수값을 찾는 과정이다. 이때, 중간에 뻘밭이 있다든지, 구멍이 있다든지 제약조건이 존재할 수도 있고, 이러한 제약 조건하에 최적의 값을 찾아나간다. Optimization에는 3가지 key components가 있다. Objective function(목적함수-eg.시간) Decision variable(eg. ro

2023년 8월 2일
·
1개의 댓글
·
post-thumbnail

텐서(Tensor)란?

딥러닝은 컴퓨터 알고리즘이 데이터를 보고, 이해하고, 그리고 그것으로부터 스스로 배우는 과정을 중심으로 돌아갑니다. TensorFlow나 PyTorch 같은 딥러닝 툴을 사용하면, 텐서라는 단어를 자주 보게 됩니다. 이 글에서는 텐서가 무엇인지, 그리고 텐서의 주요 특성이 무엇인지 알아보겠습니다. 텐서(Tensor)란 무엇인가요? 텐서는 숫자들을 담는 커다란 상자 같은 것입니다. 우리가 머신러닝 시스템에서 다루는 모든 정보는 이 텐서 안에 저장되죠. 텐서는 크게 세 가지 특성으로 정의됩니다: 랭크(Rank): 텐서의 축의 개수입니다. 예를 들어, 벡터는 축이 하나뿐이니까 랭크가 1입니다. 형태(Shape): 각 축을 따라 차원의 수입니다. 예를 들어, 정사각형 행렬은 (2,2) 형태를 가지고 있죠. 데이터 타입(Data Type): 텐서 안에 담긴 데이터의 유형이죠. float32, float64, int32 등이 있습니다

2023년 7월 31일
·
0개의 댓글
·

Decision Tree

Decision Tree > Rule Based classifier : 일련의 질문에 대한 답에 근거하여 데이터를 분류하는 모델 -classification, regression 모두 가능한 지도학습 모델 attribute (질문, 속성) : 하나의 질문 (분기)마다 변수 영역을 두 개로 구분 구성 node : 질문 or 정답 intermediate node leaf node (terminal node) : 더 이상으 자손이 없는 노드 depth : 몇 개의 분기가 존재? Decision Tree는 overfitting의 문제점을 가지고 있음. $\rightarrow$ Pruning을 통해 해결 1) 사전 가지치기 : 나무가 완성되기 전에,특정 조건을 만족하면 알고리즘 중단 2) 사후 가지치기 : 나무가 완성된 후,하단 노드부터 유의하지 않은 바로 위 나무의 node로 변환 사후 가지치기

2023년 7월 26일
·
0개의 댓글
·

Highway Networks

신경망의 깊이가 깊어질수록 학습이 어렵다는 문제를 해결해주는 highway network를 소개하는 논문입니다. highway network는 ELMo 논문에서 활용된다고 언급되어 있습니다. [Abstract] 다양한 이론과 실증적 연구를 통해 신경망의 깊이가 중요한 성공의 요인이란 것이 알려졌습니다. 하지만 신경망 학습은 신경망의 깊이가 깊어질수록 어려워지고 매우 깊은 신경망을 잘 학습하는 것은 여전히 많은 관심을 받는 분야입니다. 해당 논문에서는 매우 깊은 신경망에서 gradient-based 학습을 쉽게 해주는 구조를 소개합니다. 해당 논문에서 소개하는 구조는 몇몇 layer에서 information이 따로 간섭을 받지 않은 채 전달되기 때문에 highway network라고 합니다. Highway network는 network를 통해 information의 흐름을 regulate하는 것을 학습하는 gating unit을 사용하는 특징을 지니고 있습니다. 수백 개의 la

2023년 5월 13일
·
0개의 댓글
·
post-thumbnail

EDA - 메타데이터 테이블 만들기

머신러닝 데이터 전처리에 활용할 수 있는 메타데이터 테이블 만들기 기술 column별 역할, 속성, 사용유무, 데이터타입을 표로 나타냄 데이터 핸들링, 전처리, 시각화에 활용 해당 기술 출처 - Kaggle - 운전자 보험 예측 금메달 EDA 커널 원본데이터는 모두 숫자로 이루어짐 컬럼명에 카테고리, binary등으로 속성이 표시되어있음 Python 코드 활용 예시

2023년 4월 24일
·
0개의 댓글
·

[ML] 머신러닝 기본내용 정리1

1. 머신러닝이란? 1) 머신러닝 : 데이터에서 학습하도록 컴퓨터를 프로그래밍하는 과학. 명시적은 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야. 2) 용어 설명 훈련 세트(training set) : 시스템이 학습하는 데 사용하는 샘플 훈련 사례(training instance) or 샘플(sample) : 각 훈련 데이터 2) 머신러닝을 사용하는 이유 전통적인 프로그래밍 기법(=규칙기반) : 유지보수 어려움 머신러닝 기법 : 패턴을 감지하여 자동으로 학습 → 유지보수 용이함 머신러닝이 뛰어난 분야 기존 솔루션으로는 많은 수동 조정과 규칙이 필요한 문제 전통적인 방식으로는 해결 방법이 없는 복잡한 문제 유동적인 환경 머신러닝 사용 사례 생산 라인에서 제품 이미지를 분석하여 자동 분류 시스템 : CNN 뇌를 스캔하여 종양 진단 : 시맨틱 분할

2023년 4월 21일
·
0개의 댓글
·

[DLS] 역전파와 순전파

역전파는 왜 필요한가 dx/dy = [dy/dy] dy/db db/da da/dx 출력에서 입력 방향으로, 보통의 계산과는 반대 방향으로 미분을 계산한다. 신경망에선 매개변수를 수백만 개 이상 사용하는 건 일도 아니다. 그래서 등장한 것이 바로 역전파이다. 미분값이 오른쪽에서 왼쪽으로 전파된다. 머신러닝은 주로 대량의 매개변수를 입력 받아서 마지막에 손실함수(loss function)를 거쳐 출력을 내는 형태로 진행된다. 다시, 아래와 같은 흐름을 비교해보자. [순전파] x -> [ A ] -> a -> [ B ] -> b -> [ C ] -> y [역전파] dy/dx <- [ A'(x) ] <- dy/da <- [ B'(a) ] <- dy/db <- [C'(b)] <- dy/dy 역전파 시에는 순전파 시 이용한 데이터가 필요하다 따라서 역전파를 구하려면 순전파를 한다. 각 함수가 입력 변수(앞의 예에서는 x, a, b)의

2023년 4월 16일
·
0개의 댓글
·

[Mac] 맥북 M2에 Mediapipe 설치하기

현재 본인이 사용중인 노트북 : 맥북 프로 14 M2 구글링해서 나오는 방법(pip install meidapipe)으로는 정상적으로 설치가 되지 않고 계속 에러만 납니다. 그러나 아래 명령어를 사용하여 맥북에도 정상적으로 설치가 가능합니다. 단 설치된 파이썬의 버전이 3.8 이상이어야 합니다. 참고로 저만 그런지 모르겠으나 설치하는데 생각보다 시간이 오래 걸렸습니다(약 7분).

2023년 4월 16일
·
0개의 댓글
·