전체 글
-
안녕하세요. 블로그 작성자입니다.About Me 2023. 10. 22. 12:34
지난 2015-2016년 개발자가 되는 계기가 있었습니다. 삼성, 애플용 스마트폰 부품을 만드는 상장사와 비상장사의 MES 프로그램을 안드로이드 앱으로 개발했습니다. MES를 개발하면서 느낀 점은, 자동화를 위해서는 인공지능을 사용해야 한다는 점이었습니다. 운이 좋게도 한국에서 열린 국제 컴퓨터 비전 학회를 관람할 수 있었습니다. 2019년 한국에서 열린 ICCV 2019를 관람하면서 많은 학자들과 이야기를 나누었습니다. 그 노하우들이 머릿속에 정리되기 시작하면서 2020년 스마트팩토리 연구 용역을 3건 수행하였고, 2021-2022년 산업 부품의 외관검사를 하는 국가연구과제를 수행하였습니다. 지금은 앱 개발 보다는 웹 개발과 Node.js에 익숙하고 인공지능을 같이 연구하고 있습니다.
-
딥러닝 모델을 개발하는 일련의 과정딥러닝/기초 2022. 11. 20. 16:00
비즈니스 문제 정의 "어떠한 문제를 해결하려고 하는가?" 에 대한 정의를 내립니다. 그리고 이 문제는 분류 문제인지, regression 문제인지, 최적화 문제인지를 구분합니다. 데이터 정의 제품 검사 태스크의 경우, 양품 데이터와 비품 데이터를 나눕니다. 그리고 학습 데이터셋와 테스트 데이터셋으로 그룹핑합니다. 각각의 데이터셋에는 양품/비품이 골고루 섞여 있어야 합니다. 모델링 적용할 딥러닝 모델을 모델링합니다. 평가 모델 측정에 사용할 적절한 매트릭(mAP, AP 등)을 골라 평가 내용을 작성해 봅니다. 개발 피드백 평가를 토대로 모델 수정이 필요한 경우, 데이터 셋 일부/전부 재생성이 필요한 경우에 해당 부분을 수정하여 다시 평가해 보고 최종 평가에 도달합니다.
-
머신러닝 분류 모델의 성능 측정 방법 - Probably Approximately Correct (PAC) - TP, TN, FP, FN과 정확도, 재현율, 정밀도딥러닝/기초 2022. 11. 20. 15:42
TP, TN, FP, FN 정상적으로 판정한 경우 실제 양품을 양품으로 판정한 경우: TP = True Positive 실제 불량을 불량으로 판정한 경우: TN = True Negative 여기서 True는 올바르게 판정했다는 뜻이고, P/N은 이진 라벨을 뜻합니다. 개를 대상으로 하였다고 예를 들어보면, 보통 P는 '개'를 '개' 로 판정한 경우이고 N은 '개' 를 '개' 가 아닌 다른 객체로 판정한 경우입니다. 비정상적으로 판정한 경우 실제 양품을 불량으로 판정한 경우: FN = False Nagative 실제 불량을 양품으로 판정한 경우: FP = False Positive 여기서 False는 잘못 판정했다는 뜻이고 뒤의 P/N은 예측 값을 의미합니다. 판정 양품 예측 불량 예측 실제 양품 TP 9..
-
네이버 RexNet 논문딥러닝/CNN 모델 2022. 6. 10. 09:41
RexNet은 2020년 제가 대학원을 다니던 시절 네이버에서 야심차게 공개한 CNN 모델로 알고 있습니다. 당시 EfficientNet을 근소하게 능가하면서 관행적으로 쓰이던 ReLU와 시그모이드에 대해 일침을 날렸었지요. 당시 페이스북에서는 한동안 "EfficienctNet 대신 RexNet으로.." 란 비슷한 말들이 많이 떠돌았습니다. ReLU 대신 SiLU (Swish) 활성화 함수 사용 Swish는 구글이 메타 AI 로 찾은 활성화 함수라고 합니다. 그동안 잘 알려지지 않았던 것을 네이버가 서치하여 사용한 것으로 보여집니다. 층이 깊어질 수록 채널 차원 수를 완만하게 늘림 아키텍쳐 표를 보면 한눈에 알 수 있습니다. 전체 차원 블록 채널 차원 SE 블록 여부 스트라이드 224x224x3 conv..
-
DenseNet의 아이디어딥러닝/CNN 모델 2022. 6. 9. 15:25
DenseNet은 2016년 발표된 논문입니다. ResNet이 2015년에 발표되었고 다음해에 발표되었습니다. 이 DenseNet에서는 행렬 합으로 퓨전하는 대신 채널 차원별 CAT (Concatenation) 으로 퓨전하는 것을 선택하였고 ResNet보다 더 적은 파라미터와 더 나은 성능을 보여주었습니다. 기본 블록은 BN, ReLU로 시작하고 컨볼루션 1x1, 3x3으로 구성되어 있는 소 블록입니다. 다음 일러스트에서 보겠지만. Conv1x1과 Conv 3x3의 출력 차원은 (배치, 뎁스, X, Y)으로 구성되어 있으며 이 중 뎁스 차원이 각각 항상 같습니다. 모델의 전반적이로 이 소 블록이 쓰이는데 어떤 위치에 있는 소 블록이든지 간에 모두 Conv 1x1 출력 차원의 뎁스는 4x32 이고 Conv..
-
활성화 함수 총정리 – 시그모이드, ReLU, 하이퍼볼릭 탄젠트, Swish, SoftPlus딥러닝/활성화 함수 2022. 6. 8. 15:01
최초의 활성화 함수는 매컬러-피츠 모델과 퍼셉트론에서 쓰인 계단 함수입니다. 이후 딥러닝이 활성화 되면서 시그모이드 계열 함수들이 쓰이다가 ReLU 함수들과 그 변형들이 쓰이기 시작했습니다. 활성화 함수 (Activation Function)은 S자형의 시그모이드 계열과 구간 선형 함수인 ReLU 계열로 구분됩니다. 시그모이드 함수 시그모이드 함수는 S자 형의 함수입니다. 함수 값의 결과인 y 축의 범위는 [0,1] 사이의 값입니다. 음수 값은 출력으로 나오지 않습니다. 모든 입력 x축 구간에서 미분할 수 있고 계속해서 증가하는 증가함수이므로 미분 값이 항상 양수입니다. 출력은 [0,1] 항상 양수 값만 출력 증가함수 모든 입력 구간에서 미분 가능 하지만 시그모이드 함수는 문제점이 몇 가지 있습니다. 시..
-
U-Net딥러닝/시멘틱 세그먼테이션 2022. 6. 5. 17:00
전체적인 아키텍쳐입니다. 1x572x572 흑백 이미지를 입력으로 합니다. 이미지의 크기가 224x224에서 많이 커졌습니다. 아키텍쳐 왼쪽 부분을 설명하겠습니다. 아키텍쳐 왼쪽 부분 왼쪽 부분에서 Conv + ReLU + Conv + ReLU + Conv + ReLU가 하나의 블록을 형성하고 총 5 개의 블록을 거치면서 28x28까지 평면 차원이 축소됩니다. 572란 width에서 패딩 적용하지 않고 컨볼루션 3x3 연산을 계속하게 되는데, 한번 적용할 때마다 width가 조금씩 깎입니다.572에서 572, 570, 568, MP, 284, 282, 280, MP, 140, 138, 136, MP, 68, 66, 64,. MP, 32, 30, 28 이렇게 갑니다. 신기하게 28이란 width에 도달했습..
-
코사인 유사도 Loss딥러닝/활성화 함수 2022. 6. 5. 16:37
뉴런 값들을 벡터로 그룹핑할 수 있습니다. 차원 수가 2인 경우 2차원 평면 상에 그려집니다. 보통 뉴런 값 N개로 이루어져 있으므로 N 차원입니다. 하지만 설명을 위해 2차원 평면 상에서 무언 가를 그려 보도록 하겠습니다. 뉴런의 피처 맵 feature map 값들은 대게 음수 값이 없습니다. 따라서 뉴런 벡터를 시각화 해 보면 2, 3, 4 분면을 지나는 벡터는 없을 것입니다. 코사인 유사도 공식을 알아보겠습니다. 벡터의 내적 공식은 $$ \large \overrightarrow{a}\bullet\overrightarrow{b}=\lvert \overrightarrow{a} \rvert\lvert \overrightarrow{b} \rvert\cos{ \theta }=a_1b_1+a_2b_2 $$ 입..