728x90

IT/AI\ML 77

[python] 데이터 사이언티스트(데이터 분석가)에 도움이 되는 Tip : yield, partial, map, filter, reduce, enumerate

※ 일본 포스팅을 번역한 것입니다. 오역 및 직역이 있으며 내용의 오류가 있는 경우 댓글로 알려주시면 수정하겠습니다. 책 Data Science from Scratch 챕터 2에서 나온 일부의 내용을 내가 필요할 때 보기위해 정리한 메모이다. yield yield에 대한 이미지는 이 포스팅에서 잘 다루고 있다. 그 다음 이 포스팅을 읽는다면 더욱 이해가 깊어질 것이다. 여기서 yield에 대해 한 문장으로 간략하게 말하자면, "return을 사용하면 그 행에서 처리가 끝나 값을 모두 return하게 되므로, 거대한 데이터를 이용해서 반복 작업을 할 경우, 반복할 때마다 메모리를 쓸모없이 낭비하게 된다. 이때, yield을 사용하면 편리하다"라고 할 수 있다. def func(): a = 10 b = 20..

IT/AI\ML 2021.08.03

[python/Tensorflow] TFRecord를 만들어서 최소한의 CIFAR-10데이터로 학습시키기

이전에 번역했던 TFRecord포스팅보다 조금 더 알기 쉬운 일본 블로그 포스팅을 발견해서 번역해서 정리해두고자 한다. 1. TFRecord에 대해 TFRecord가 종종 나오지만, 비교적 입문하기 어렵기 때문에 방치하는 경우가 많다. 이번에는 CIFAR-10를 스스로 만든 TFRecord를 경유해서 학습시켜 보도록 하겠다. Numpy베이스로 할 수 있는 최소한의 처리를 TFRecord로 작성한다. TFRecord가 무엇인가에 대한 이야기부터 하자면, TFRecord는 Tensorflow가 장려하고 있는 머신러닝 데이터 포맷이다. 포맷은 Protocol Buffer가 베이스이다. 2. Numpy 배열을 기록하기 위해서는 TFRecord는 다양한 작성 방법이 있지만, 처음에는 "어떤 방법으로 작성하면 좋을..

IT/AI\ML 2021.07.30

[논문] 새로운 활성화함수 "FReLU" 탄생과 해설

※ 일본 블로그의 포스팅을 해석한 것입니다. 오역이나 직역이 있을 수 있으며, 내용 오류는 댓글로 알려주시면 수정하도록 하겠습니다. 이미지 인식에 특화된 새로운 활성화 함수 FReLU 해설과 구현 뉴럴 네트워크의 비선형성을 받쳐주고 있는 활성화 함수이지만, 현재 사실상의 표준으로 ReLU만 언급되고 있다. 심플하고 강력한 ReLU에 대적할 새로운 활성화 함수로써 Swish[Ramachandran, P.(2017)]나 Mish[Misra, D.(BMVC'20)] 제안되었지만, 최근(2020년 10월)에 이미지 인식에 특화된 활성화 함수로 등장해 ECCV'20에 채택된 Funnel Activation (통칭 FReLU)가 두각을 나타내고 있다. 이미지 분류나 물체 검출, 시멘틱 세그멘테이션등의 분야 등에 성..

IT/AI\ML 2021.07.25

머신러닝에서의 IoU(Intersection over Union)란?

IoU란? IoU는 Intersection over Union의 약어로 머신러닝의 물체검출 분야에서 2개의 영역이 "얼마나 겹쳐져 있는가"를 표시하는 지표이다. 물체 검출의 평가지표인 IoU IoU는 물체 검출 분야에서 평가지표로 사용된다. 여기서 물체 검출이란 "이미지"와 정답 라벨(어느 영역에 어떤 것이 있는가에 대한 정보)가 전달될 때, 이것을 얼마나 정확하게 검출하는가에 대한 문제이다. 정답 영역 및 예측 영역은 대부분 직사각형으로 하는 문제 설정이 많다. 정답 영역과 예측 영역이 겹쳐진 부분이 클 수록 IoU의 값이 커진다. 예측 영역이 어긋나거나, 정답 영역내에서도 너무 작은 영역이 겹친다거나 정답 영역에 포함되어 있어도 너무 크면 IoU의 값이 낮아진다. 즉, IoU의 값이 클수록 "물체가 ..

IT/AI\ML 2021.07.19

[python/Tensorflow2.x] TFRecord의 사용법

TFRecord란? TFRecord는 데이터 세트의 포맷의 하나로 TFRecord형식은 바이너리 코드의 시리즈를 저장하기 위한 단순한 형식이다. 프로토콜 버퍼는 구조화 데이터를 효율적으로 시리얼라이즈하는 플랫폼이나 언어에 의존하지 않는 라이브러리이다. TFRecord를 사용하는 것으로, 대규모 데이터를 효율적으로 학습할 수 있게 된다. 이번 포스팅을 통해 TFRecord의 사용 방법이나 마스터할 수 있도록 읽고 쓰기하는 방법에 대해 살펴 볼 것이다. 그리고 마지막으로 실제 예를 이용해서 어떻게 사용할 수 있는지에 대해서 알아볼 것이다. TFRecord를 사용하는 이유 TFRecord 안은 Protocol Buffer이라는 바이너리 포맷으로 되어 있다. 한 번 TFRecord를 작성하는 것으로 데이터의 생..

IT/AI\ML 2021.07.08

[python/openCV] openCV로 이미지 여백 삭제 (1)

opencv로 여백을 삭제하는 두 가지 예제 코드를 살펴 보는 포스팅을 하고자 한다. 참고로 여백 삭제를 위해서는 openCV이외에 Pillow 라이브러리를 사용할 수 있지만, 두 개의 포스팅 모두 openCV를 사용할 것이다. 첫 번째 예제 코드의 포스팅에서 사용할 이미지는 다음의 회로도이다. 여백을 삭제해 다음과 같이 이미지를 회로도만 보이게 할 것이다. 여백 삭제의 코드 흐름 이미지 여백 삭제를 위해 다음과 같은 흐름으로 코드를 작성할 것이다. 1) 이미지를 읽어 들인다. 2) 색 공간을 이진화한다. 3) 윤곽을 추출한다. 4) 윤곽의 안에서 부터 좌표가 최소 그리고 최대가 되는 x, y 각각을 취득하고, 그 값을 이용해 직사각형인 이미지를 추출한다. 1번째에서 3번째까지는 물체 인식이나 문자 인식..

IT/AI\ML 2021.07.06

카테고리 변수를 다루는 네 가지 방법

이번 포스팅에서는 기계 학습 모델을 사용할 때에 포인트가 되는 카테고리 변수의 수치화에 대해서 집중하고자 한다. 카테고리 변수는 신장이나 체중과 같이 수치로 표시할 수 있는 변수가 아닌, "좋아하는 색상"과 같이 구분의 척도에 관련된 변수를 의미한다. 또한 학교의 클래스와 같이 1반, 2반, .....과 같이 숫자 자체를 의미하지 않는 것도 카테고리변수가 된다. 기계 학습을 구현할 때 결정 나무 등은 카테고리 변수를 그대로 다루는 것이 가능하다. 그러나, 로지스틱 회귀나 뉴럴 네트워크에서는 그대로 사용하는 것이 불가능하기 때문에, 숫자형으로 변형해야할 필요가 있다. 또한, 결정 나무계의 기계 학습 모델에서도 수치로 변환하는 것이 정밀도 향상에 도움이 되는 경우가 많다. 이번에는 대표적인 수치 변환 방법으..

IT/AI\ML 2021.06.03

설명 변수와 목적 변수

머신 러닝 공부 중 설명 변수와 목적 변수에 대한 내용이 있어 한 번 정리해보고자 한다. 설명 변수와 목적변수 간단히 정의하자면 설명 변수와 목적 변수를 다음과 같이 정리할 수 있을 것 같다. 목적 변수 : 기계학습의 교사 학습(Supervised learning)에 있어서 예측하고 싶은 정보 설명 변수 : 기계학습의 교사 학습(Supervised learning)에 있어서 예측에 사용하는 정보 모델 : 설명 변수와 목적 변수를 결합하는 "상자'(함수나 프로그램) 동의어는 다음과 같다. 목적 변수 설명 변수 - 종속 변수(Dependent variable) - 반응 변수(Response variable) - 결과 변수(Outcome variable) - 표적 변수(Target variable) - 독립 ..

IT/AI\ML 2021.05.18

ipywidgets 사용법 (2)

지난 포스팅에 이어서 기본적인 사용법에 대해 정리해보고자 한다. 지난 번에 간단한 그래프와 이미지 변환에 대해 살펴보았다면 이번 포스팅에서는 조금 더 구체적인 내용을 다뤄보고자한다. 버튼 위젯 작성 단순 버튼을 만들어보자. import ipywidgets as widgets button = widgets.Button(description='Click me') button 한편으로 위의 코드는 위젯이 여러 개 있거나 복잡한 패턴이 되는 경우 다루는 것은 힘들다. 따라서 IPython.display.display()함수의 인수에 위젯을 전달하는 방식이 아마 알기 쉬울 것이라고 생각한다. display는 JupyterLab이라면 import하지 않고 사용가능한 것 같지만 혹시 모르기 때문에 import한 후에..

IT/AI\ML 2021.04.07

ipywidgets 사용법 (1)

1. ipywidgets이란 ipywidgets는 UI 라이브러리로 함수를 전달하면 셀렉트 박스나 슬라이더의 조작으로 인수를 변경하면서 함수를 실행할 수 있게 된다. 예를 들어 아래의 그림과 같이 tsne로 2차원화하여 납작하게 한 것을 셀렉트박스로 선택한 샘플만을 표시하게 할 수도 있다. 이외에도 EDA할 때에 x축과 y축을 셀렉트 박스로 선택하여 플롯하게 만들거나 변수의 파라미터를 변경하면서 플롯하게 만들 수도 있다. 플롯 이외에도 함수를 나열해 조작할 수 있도록 할 수 있으므로 여러모로 편리하다. 그러나 ipywidgets는 함수를 호출하는 것 뿐이므로 빠른 속도로 실행하거나 그래프 등을 그려주거나 해주지는 않는다. 또한 참고로 여기서 추가로 matplotlib를 그래프 함수로 호출한 경우, 매번 ..

IT/AI\ML 2021.04.06
728x90