T'SPACE

다채로운 에디터들의 이야기

728x90
반응형

컴퓨터공학/인공지능 19

분류기 성능지표들과 ROC Curve, Confusion Matrix

Confusion Matrix분류기 (Classifier) 는 Positive - False 로 이루어진 이진적인 데이터를 옳게 분류하는 모델이다 분류기가 한 예측은 맞거나(True) 틀리거나(False) 중 하나이다 그래서 모든 결과들을 테이블로 만들어둔게 Confusion Matrix이다 TP: True PositiveFP: False PositiveFN: False NegativeTN: True Negative AccuracyAccuracy는 정확도라고 하는데분류기가 예측한 것들중에서 실제로 맞춘 것들의 비율이다Accuracy가 1 이면 모든 데이터에 대해 옳게 정답을 내는 분류기이다 PrecisionPrecision은 분류기가 Positive라고 한 놈들 중실제로 정답이 Positive라고 예측 ..

저수지 샘플링 Reservoir Sampling

레저보어 샘플링이 알고리즘은 아래와 같은 문제상황에서 사용된다. Data Stream이 있는데 나에게는 한정적인 Memory 가 있고 Data Stream의 크기는 미리 알지못하지만나는 공평하게 Random Sampling을 전체 Data Stream에서 하고 싶을때 어떻게 할까? 정답 부터 말하자면스트림에서 항목을 하나씩 가져옵니다첫 번째 항목을 선택하여 저장합니다k번째 항목을 선택할 때 1/k의 확률로 선택하고 기존 선택을 대체합니다↔ 모든 데이터에 대해 일정한 확률을 사용하면 마지막 데이터가 데이터셋에 포함될 가능성이 첫 번째 데이터보다 훨씬 더 높아집니다. 첫 번째 데이터는 더 많은 선택 과정을 견뎌야 하기 때문입니다.밑에 수학적인 증명을 보여주기 전에 더 와닫게 예시를 들어보면 죄수들이 한줄로 ..

Leetcode Introduction to Pandas 기본 문법 정리

데이터 사이언스, 인공지능의 기본 미덕인 Pandas의 기본을 익혀보려Leetcode의 Study Plan중 Introduction to Pandas를 풀어보았다 사실 파이썬 할줄알면 하루만에 15문제 다 풀수 있을텐데나는 일주일에 3문제씩 5주간 천천히 풀었다 풀면서 알아야할 문법을 정리 해보겠다 2877. Create a DataFrame from Listimport pandas as pddef createDataframe(student_data: List[List[int]]) -> pd.DataFrame: student_data_df=pd.DataFrame(student_data,columns=['student_id','age']) return student_data_df List로 in..

Custom Convnets 특수 제작 Convnet

컨볼루션 신경망(Convolutional Neural Networks, CNNs)의 작동 원리와 설계 방법컨볼루션 신경망(CNN)은 이미지 처리 및 분류 작업에서 매우 강력한 도구로 자리 잡았고CNN은 이미지를 분석하고 특징을 추출하는 능력으로 인해 컴퓨터 비전 분야에서 널리 사용되고 있습니다. 이번 글에서는 CNN이 어떻게 이미지로부터 정보를 추출하고 이를 학습하여 이미지 분류 문제를 해결하는지, 그리고 직접 CNN 모델을 설계하는 방법에 대해 알아보겠습니다.1. CNN의 기본 작동 원리CNN이 이미지를 분석하는 과정은 세 가지 주요 단계로 나눌 수 있습니다: 필터링(Filter), 검출(Detect), 그리고 축소(Condense). 이러한 과정들을 통해 CNN은 이미지로부터 유용한 특징들을 추출해냅..

Stride CNN, 보폭

필터링, 검출, 압축: CNN에서 슬라이딩 윈도우 사용법컨볼루션 레이어로 필터링ReLU 활성화 함수로 검출최대 풀링 레이어로 압축컨볼루션과 풀링 작업은 모두 슬라이딩 윈도우를 사용해 수행됩니다. 컨볼루션에서는 이 윈도우가 kernel_size로 정의되고, 풀링에서는 pool_size로 정의됩니다.컨볼루션과 풀링 레이어에 영향을 미치는 추가적인 두 가지 매개변수는 윈도우가 이동하는 거리인 strides와 입력 이미지의 가장자리에 대해 패딩을 적용할지 여부를 결정하는 padding입니다.from tensorflow import kerasfrom tensorflow.keras import layersmodel = keras.Sequential([ layers.Conv2D(filters=64, ..

Maximum Pooling 최대값 풀링

CNN의 최대 풀링과 글로벌 평균 풀링 이해하기컨볼루션 신경망(CNN)은 이미지 분류 및 분석에서 중요한 도구입니다. 이번 글에서는 CNN의 중요한 구성 요소인 최대 풀링(Max Pooling)과 글로벌 평균 풀링(Global Average Pooling)에 대해 알아보겠습니다.최대 풀링(Max Pooling)최대 풀링은 CNN의 특성 맵에서 중요하지 않은 정보를 제거하고 중요한 정보를 추출하는 역할을 합니다. 이는 주로 이미지의 활성화된 부분을 강조하는 데 사용됩니다. 예를 들어, 아래의 코드에서 최대 풀링을 적용한 모델을 정의할 수 있습니다.from tensorflow import kerasfrom tensorflow.keras import layersmodel = keras.Sequential([ ..

합성곱과 ReLU, Convolution

신경망의 특징 추출: 컨볼루션, ReLU, 그리고 최대값 풀링신경망에서 특징 추출은 이미지의 중요한 특성을 뽑아내는 과정입니다. 이는 다음과 같은 세 가지 기본 작업으로 이루어집니다:특정 특징을 위해 이미지를 필터링 (컨볼루션)필터링된 이미지에서 그 특징을 감지 (ReLU)이미지를 압축하여 특징을 강화 (최대 풀링)아래 그림은 이 과정을 시각적으로 보여줍니다. 이 세 가지 작업이 원본 이미지에서 특정 특성(이 경우에는 수평선)을 어떻게 분리해내는지 확인할 수 있습니다.일반적으로, 네트워크는 한 이미지에서 여러 특징을 병렬로 추출합니다.컨볼루션을 이용한 필터링컨볼루션 레이어는 필터링 작업을 수행합니다. Keras 모델에서 컨볼루션 레이어를 다음과 같이 정의할 수 있습니다:from tensorflow imp..

CNN - Convolution Neural Networks

컨볼루션 분류기 Convolution Classifier우리의 목표는 신경망이 자연 이미지를 충분히 "이해"하여 인간의 시각 시스템이 해결할 수 있는 동일한 종류의 문제를 해결할 수 있도록 학습하는 방법을 배우는 것입니다.이 작업에 가장 적합한 신경망은 컨볼루션 신경망입니다. (때로는 convnet 또는 CNN이라고도 합니다.)이미지 분류에 사용되는 컨브넷은 컨볼루션 베이스와 밀집 헤드의 두 부분으로 구성됩니다.베이스는 이미지에서 특징을 추출하는 데 사용됩니다. 주로 컨볼루션 연산을 수행하는 레이어들로 구성되지만, 종종 다른 종류의 레이어들도 포함됩니다. (이 부분에 대해서는 다음 레슨에서 배울 것입니다.)헤드는 이미지의 클래스를 결정하는 데 사용됩니다. 주로 밀집 레이어들로 구성되지만, 드롭아웃 같은 ..

이진 분류 Binary Classification

이진 분류두 클래스 중 하나로 분류하는 것은 흔한 머신 러닝 문제입니다.원시 데이터에서는 클래스가 "Yes"와 "No", 또는 "Dog"와 "Cat"와 같은 문자열로 표현될 수 있습니다. 이러한 데이터를 사용하기 전에 클래스 레이블을 할당합니다: 하나의 클래스는 0, 다른 하나는 1로 할당합니다. 숫자 레이블을 할당하면 데이터가 신경망에서 사용할 수 있는 형태가 됩니다.정확도와 교차 엔트로피정확도(Accuracy)는 분류 문제에서 성공을 측정하는 데 사용되는 여러 메트릭 중 하나입니다. 정확도는 올바른 예측의 비율을 총 예측의 비율로 나타냅니다: accuracy = number_correct / total. 항상 정확하게 예측하는 모델은 정확도 점수가 1.0이 됩니다. 모든 조건이 동일하다면, 데이터셋의..

딥러닝 모델 성능 향상을 위한 Dropout과 Batch Normalization

딥러닝 모델을 설계할 때, 뉴런이 포함되지 않은 특별한 레이어를 추가함으로써 모델의 성능을 향상시킬 수 있습니다. 이번 포스트에서는 그런 레이어 중 두 가지인 Dropout과 Batch Normalization에 대해 알아보겠습니다. 이 두 레이어는 현대적인 딥러닝 아키텍처에서 흔히 사용됩니다.Dropout첫 번째로 소개할 레이어는 과적합(overfitting)을 방지하는 데 도움을 주는 "드롭아웃 레이어"입니다.딥러닝 모델은 때때로 특정 가중치 조합에 의존하여 잘못된 패턴을 학습할 수 있습니다. 이러한 조합은 매우 구체적이어서 하나만 제거해도 모델의 성능이 급격히 떨어질 수 있습니다. 이를 방지하기 위해 드롭아웃을 사용합니다. 드롭아웃은 훈련 중 매 스텝마다 레이어의 입력 유닛 일부를 무작위로 제거하여..

728x90
반응형