앎을 경계하기

Machine Learning 109

[YOLO 정독] YOLOv3 : An Incremental Improvement

YOLO v1, v2에 이어 세번째 버전인 v3 리뷰글을 작성한다. YOLOv3는 v2에서 개선된 버전으로 v2를 먼저 읽고 v3를 읽는 것을 추천한다. Bounding box prediction YOLOv1에서는 anchor box 없이 즉시 bounding box 정보를 예측했다. 좀 더 안정적인 학습을 위해 YOLOv2에서는 anchor box를 사용하여 BBox를 예측하는 방법을 사용한다. 그리고 학습 과정에서 loss function은 SSE 형태의 에러함수를 사용한다. YOLO v3는 logistic regression을 사용해 각 bbox를 위한 objectness score를 예측한다. 우선순위의 bbox가 다른 bbox보다 GT bbox와 많이 겹친다면(IoU가 높다면) score는 1이..

[YOLO 정독] YOLO v2 (YOLO 9000)

YOLO v1에 이어 v2에 대한 정리글을 쓴다. YOLO v2 논문 구조가 매우 신박하다. intro, conclusion 사이에 Main Idea에 대해 Better, Faster, Stronger로 나눠서 설명한다. (보통 intro, related work, method, experiment, conclusion 순) 오히려 좋아 지난 v1과 비교했을 때 달라지는 부분들이 몇 개 있기 때문에 이러한 부분들에 집중해서 포스팅을 해야겠다. 먼저 달라진 점은 v1에서는 20개의 카테고리를 대상으로 Object Detection을 진행하였다. 하지만 객체검출이라하면.. 일반적으로 매우 많은 사물에 대해서도 잘 동작해야한다. 예를 들어, 나무, 사람은 검출하면서 컵은 검출못한다면..? 검출할 수 있는 객체..

Vision Transformer 모델들은 왜 데이터셋이 많아야할까? Inductive bias

Transformer를 vision task를 위해 도입한 논문들을 보면 이런 말을 자주 본다. 트랜스포머 모델들이 CNN 기반 모델보다 inductive bias가 부족하다. Inductive bias가 뭔데..? 구글에 그대로 검색해보면 다음과 같이 설명한다. 학습 알고리즘의 귀납적 편향은 학습자가 경험하지 않은 주어진 입력의 출력을 예측하는 데 사용하는 가정의 집합입니다. 기계 학습에서 특정 목표 출력을 예측하는 방법을 배울 수있는 알고리즘을 구성하는 것을 목표로합니다. 대충 억지로 이해해보면,, 경험하지 않은 입력에 대한 예측을 위해 사용하는 가정이다.. 즉, 학습하지 않은 데이터가 들어갔을 때 잘 예측하기 위한 가정이구나! 이게 Transformer랑 CNN이랑 무슨 상관인지 이해하려면 CNN의..

[YOLO 정독] YOLO v1

YOLO는 "You Only Look Once"라는 논문으로 세상에 나오게 되었다. 작명센스가 미쳤다.. You only live once 아님 ^^ YOLO의 핵심은 "one stage object detection"이라는 것이다. YOLO가 발표되기전 최신논문이었던 R-CNN 계열은 바운딩박스 후보군을 생성하는 region propose part와 bounding box 정보를 예측하는 Bounding box regressor와 해당 바운딩박스의 클래스를 분류하는 classfier를 따로 따로 나눠서 학습시킨다. 이것을 two-stage object detection이라고 함. 아무튼 그러다보니 R-CNN은 학습이 느리고 최적화가 어렵다. (각 역할마다 모델을 다 따로따로 분리해놨으니 당연히 최적화가..

SPARK 완벽 가이드 - ch.5 구조적 API 기본 연산

구조적 API 기본 연산 4장 내용 - 구조적 API의 핵심 추상화 개념 5장 내용 - DataFrame과 DataFrame의 데이터를 다루는 기능 소개 Row 타입의 records (= 테이블의 row) 각 레코드에 수행할 연산 표현식을 나타내는 Columns (=스프레드시트의 column) 각 컬럼명과 데이터 타입을 정의하는 schema dataframe이나 dataset이 클러스터에서 물리적으로 배치되는 형태를 Partitioning 이라고 함 Partitioning schema는 파티션을 배치하는 방법을 정의 파티셔닝의 분할 기준은 특정 컬럼 또는 비결정론적(매번 변하는)값을 기반으로 설정 ex) json 파일 데이터를 dataframe 타입으로 로드하여 스키마 확인하기 >>> df = spark..

SPARK 완벽 가이드 - ch.4구조적 API

구조적 API 개요 구조적 API는 비정형 로그 파일부터 반정형 CSV, 정형 Parquet 파일까지 다양한 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다. Dataset DataFrame SQL Table, View 구조적 API를 사용해서 배치 작업을 스트리밍 작업으로 손쉽게 변환할 수 있다. 구조적 API는 데이터 흐름을 정의하는 기본 추상화 개념이다. 이번 장에서는... typed/untyped API의 개념과 차이점 핵심 용어 스파크가 구조적 API의 데이터 흐름을 해석하고 클러스터에서 실행하는 방식 4.1 DataFrame과 Dataset DataFrame과 Dataset의 정의와 의미적인 차이점? DataFrame과 Dataset은 잘 정의된 row와 col..

[SPARK 완벽 가이드] Chapter 3 스파크 기능 둘러보기

3. 스파크 기능 둘러보기 앞 장에서 트랜스포메이션과 액션 등 스파크의 구조적 API와 관련된 핵심 개념을 배웠다. 스파크 구성 저수준 API 구조적 API 표준 라이브러리 스파크의 라이브러리는 그래프 분석, 머신러닝, 스트리밍 등 다양한 작업을 지원한다. 컴퓨팅 및 저장 시스템과의 통합을 돕는 것도 스파크의 역할이다. 3장에서 배울 내용 spark-submit 으로 운영용 애플리케이션 실행 Dataset : Type-safe를 제공하는 구조적 API 구조적 스트리밍 머신러닝과 고급 분석 RDD : 저수준 API SparkR 서드파트 패키지 에코시스템 3.1 운영용 애플리케이션 실행하기 spark-submit명령을 사용해 대화형 쉘에서 개발한 프로그램은 운영용 애플리케이션으로 쉽게 전환할 수 있다. sp..

[SPARK 완벽 가이드] Chapter 1 아파치 스파크란? / Chapter 2 스파크 간단히 살펴보기

Chapter 1. 아파치 스파크란?통합 컴퓨팅 엔진클러스터 환경에서 데이터를 병렬로 처리하는 라이브러리 집합병렬 처리 오픈소스 엔진Python, JAVA, Scala, R 지원 및 SQL, Streaming, ML 등 다양한 라이브러리 제공1.1 아파치 스파크의 철학통합스파크의 목표는 '빅데이터 애플리케이션 개발에 필요한 통합 플랫폼을 제공하자'이다.통합(unified)은 무슨 의미일까?스파크는 간단한 데이터 읽기부터 SQL, 머신러닝, 스트림 처리까지 다양한 데이터 분석 작업을 일관성 있는 API로 수행할 수 있도록 설계되어 있다.스파크의 통합 특성을 이용하면 기존의 데이터 분석 작업을 더 쉽고 효율적으로 수행할 수 있다.스파크에서 제공하는 조합형 API를 사용해 애플리케이션을 만들 수 있고, 만약 ..

[Pytorch Tutorials] Image and Video - DCGAN Tutorial

Introduction예제를 통해 DCGAN을 알아보는 튜토리얼을 진행한다. 실제 유명인들의 사진을 통해서 새로운 사람을 생성하는 Generative Adversarial Network(GAN)을 학습시킨다. DCGAN의 구현은 https://github.com/pytorch/examples 을 참고한다.Generative Adversarial NetworksWhat is GAN?GANs는 학습 데이터셋의 분포를 통해 새로운 데이터의 분포를 학습 데이터 분포와 똑같이 만들어내는 것이다. generator와 discriminator라는 두개의 명확한 모델을 만들어낸다.generator는 학습 이미지와 비슷한 "fake" 이미지를 만들어낸다.discriminator는 generator가 생성한 fake im..

Machine Learning 2021.03.22