전체 글 55

딕셔너리

딕셔너리 key와 value로 이루어진 딕셔너리 파이썬 3.7+ 부터 입력 순서가 유지됨 내부적으로 해시 테이블(11장에서 자세히 소개)로 구현되어 있다. 해시 테이블은 다양한 타입을 키로 지원하면서도 입력과 조회가 모두 O(1)에 가능 분활 상환 분석에 따른 시간 복잡도는 O(1) 연산 시간 복잡도 설명 len(a) O(1) 요소의 개수를 리턴 a[key] O(1) 키를 조회하여 값을 리턴 a[key]=value O(1) 키/값을 삽입 key in a O(1) 딕셔너리에 키가 존재하는지 확인 💡 주의! 파이썬 3.6 이하의 경우 입력 순서가 유지되지 않을 수 있다. ( 코딩 테스트 시에도 인터프리터의 버전을 정확히 확인할 수 있는 상황이 있을 수 있음) ⇒ 항상 입력 순서가 유지되는 collection..

파이썬 리스트 구조

리스트 리스트 순서대로 저장하는 sequence 변경 가능 입력 순서가 유지 내부적으로 동적 배열로 구현되어 있음(7장에서 자세히) 장점 다양한 기능을 제공, O(1)에서 실행 가능한 연산도 존재 리스트의 주요 연산 시간 복잡도 연산 시간 복잡도 설명 len(a) O(1) 전체 요소 개수 a[i] O(1) index가 i인 요소 a[i:j] O(k) 슬라이싱에서 k개에 대한 조회가 필요 elem in a O(n) elem이라는 요소가 a안에 있는지 확인 a.count(elem) O(n) elem 요소의 개수 a.index(elem) O(n) elem요소의 index a.append(elem) O(1) elem요소를 리스트 마지막에 추가 a.pop() O(1) 리스트 마지막 요소를 추출 a.pop(0) O..

자료형, 자료구조, 추상 자료형

자료형 리스트(List)와 딕셔너리(Dictionary)에 대해 중점적으로 살펴본다. 파이썬 자료형 None class None Type 숫자 정수형 정수 ( class int ) 파이썬에서는 숫자 정수형으로 int만을 제공 int는 임의 정밀도를 지원(무제한 자릿수 제공) ⇒ 정수를 숫자의 배열로 간주해서, 자릿수 단위로 쪼개어 배열 형태로 표현한다. 이후, 나중에 사용할 때 모두 더하여 사용한다. ⇒ 숫자를 임의 정밀도로 처리하면 계산 속도가 저하되지만 숫자를 단일형(int 하나)로 처리할 수 있고 Overflow를 고려할 필요가 없어 잘못된 계산 오류를 방지할 수 있음. ⇒ 기능을 위해 속도를 희생 불리언 ( class bool ) bool은 엄밀히 따지면 논리 자료형이지만, 파이썬 내부적으로 1(..

빅 오 표기법

빅 오 입력값이 커질 떄 알고리즘의 실행 시간(시간 복잡도)과 함께 공간 요구사항(공간 복잡도)이 어떻게 증가하는지를 분류하는데 사용한다. → 알고리즘의 효율성을 분석하는데 활용 빅오 입력값이 무한대로 향할 대 함수의 상한을 설명하는 수학적 표기 방법 점근적 실행 시간(Asymptotic Running Time)을 표기할 때 가장 널리 쓰이는 수학적 표기법 중 하나 컴퓨터의 빠른 처리 능력을 감안하더라도 입력의 크기가 충분히 큰 경우에는 알고리즘의 효율성에 따라 수행시간이 크게 차이가 난다. 점근적 실행 시간 = 시간 복잡도 (Time Complexity) = 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도(Computational Complexity) 계산 복잡도를 표기하는 대표적인 방..

파이썬 문법 기본

목차 1. 인덴트 2. 네이밍 컨벤션 3. 타입 힌트 4. 리스트 컴프리헨션 5. 제너레이터 6. range 7. enumerate 8. 나눗셈 연산자 9. print 10. pass 11. locals 인덴트 공백 4칸을 원칙 IDE 쓰면 알아서 네이밍 컨벤션 snake case를 따른다. (각 단어를 밑줄(_)로 구분) → python의 PEP(Python Enhancement Proposals) 8 및 철학에 따라 스네이크 코딩을 지향 타입 힌트 동적 타이핑 언어임에도 타입을 지정할 수 있다. a: str = "1" b: int = 1 def fn(a:int) -> bool: ~타입 선언을 할 수 있기는 하지만, 여전히 동적으로 할당 될 수 있음 a:str = 1 type(a) 출력 : ⇒ 타입 지..

Self-supervised learning of audio and speech representation [1/4] ( KAIST 정준선 교수님 ) / 음성 인식이란?

제가 지금까지 군생활을 하면서 가장 잘했다고 생각하는 것은 데일 카네기의 인간관계론이라는 책을 읽은 것입니다. 사람이 무엇을 원하는지 확실히 알게 되었기 때문입니다. ​ 사람은 모두 인정받기를 "갈망" 합니다. 좋은 것으로는 부족합니다. "갈망" 합니다. ​ 나의 존재가 인정받기를 원해서 우리는 자신을 다양한 방식으로 표현합니다. 그 중에서 가장 쉽고 효과적인 수단은 "말하기" 입니다. 그래서 사람들은 자신의 이야기를 "들어주는" 사람을 좋아합니다. 나의 존재가 빛날 수 있도록 나를 하늘 높이 들어주는 사람을 좋아하는 감정은 자연스러운 것이니까요. ​ 저의 목표는 친구같은 인공지능을 만드는 것이라고 말해왔습니다. 하지만, 정확히 말하자면 진심을 다해 "들어주는" 인공지능이라는 생각이 듭니다. ​ 이번 포..

Recent trends of text-to-image translation models [4/4] ( UNIST 유재준 교수님 ) / 이미지 생성모델의 역사 2020-2022

| From 2021 to 2022 2021 2021 Ramesh et al., “Zero-Shot Text-to-Image Generation (DALL-E),” ICML’21 2021년 1월 5일. 엄청나게 큰 모델과, 엄청나게 큰 Data. 거기에다가 이 둘을 잘 처리할 수 있는 엄청나게 좋은 연산 컴퓨터가 있다면 겁나게 좋은 성능의 이미지 생성 모델을 얻을 수 있다는 것을 발표했다. ( 사실 그 당시 가장 좋은 성능을 뽑아내는 V100 GPU를 가지고도 DALL-E 모델 한개 조차 들어가지 못할 정도로 큰 모델을 사용하였다. 이를 처리하기 위한 다양한 분산 처리 기술들을 활용하였다.(여러개의 GPU에 따로따로 분산학습 시킨다음 합치는 방식) ) ​ ​ DALL-E는 ​ 12B(120억)개의 par..

[GAN 시리즈] StackGAN에 대한 모든 것 (논문 리뷰)

StackGAN 이라는 이름을 보건데, GAN을 stack(쌓다)하였음을 유추할 수 있다. ​ StackGAN은 text condition을 줌으로써 이미지 생성을 했을 때, 성능이 그리 좋지 못한것을 보고 더 명확하고, 고화질의 이미지를 생성하기 위해 다음과 같은 아이디어를 제시했다. ​ 2개의 GAN을 사용하는 것이다. ​ 첫번째 GAN은 대략적인 형태, 사물과 배경의 색깔등에 중점을 둔 스케치 이미지 생성을 담당한다. 두번째 GAN은 앞서 생성한 스케치 이미지의 오류를 고치면서 디테일을 추가하고, 더 고화질의 이미지를 최종적으로 생성한다. ​ 이렇게 세부 역할 분담을 하면, 어려운 문제가 그나마 쉬운 여러 문제로 나뉘게 되고 덕분에 더 좋은 성능의 이미지를 얻을 수 있다. 목차 1. 전반적인 도식도..

Computer Vision 2023.02.05

Recent trends of text-to-image translation models [3/4] ( UNIST 유재준 교수님 ) / 이미지 생성모델의 역사 2016-2020

| From 2016 to 2020 ​ 이제 datasets까지 다뤄보았으니 Text-to-Image Synthesis가 시작된 2016년으로 거슬러 올라가본다. 2016 2016 Reed et al.,“Generative Adversarial Text to Image Synthesis,” ICML’16 지금 LG에서 AI 연구를 하고 계시는 이홍락 교수님이 2016년 5월에 발표하신 Generative Adversarial Text to Image Synthesis는 처음으로 Text로 이미지 생성을 control하려는 시도를 한다. ​ 2014년에 GAN이 등장하고, 그 해 말 cGAN이 나옴으로 인해 conditional(이전 사건에 의존)한 방법을 통한 의도된 이미지 생성 시도가 이뤄지고 나서 ​..

정보의 정량화, 정보 엔트로피에 이은 Cross Entropy

비용함수로 자주 사용되는 Cross Entropy에 대해서 깊은 이해를 하게 해주는 영상을 발견했다. ( 자막도 잘 나와있어서 좋다. ) https://www.youtube.com/watch?v=PtmzfpV6CDE https://www.youtube.com/watch?v=2s3aJfRr9gE | 정보량 ​ 세상에는 다양한 종류의 정보들이 있다. 이 정보들을 하나의 기준으로 평가하고 싶은데 어떤 기준이 좋을 것인가? ​ ​ A라는 사람이 B라는 사람에게 정보를 전달할 것인데 보내고자 하는 정보의 양(정보량)을 수치화 할 수 있는 방법이 있을까? ​ 일단 정보들을 하나의 기준으로 평가하려면 정보들을 전달하는 방식이 동일해야 할 것이다. ​ 어떤 정보는 문자로 보내고, 어떤 정보는 숫자로 보내면 이 둘 정보..