본문 바로가기
728x90

전체 글424

[논문 리뷰] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis Abstract 이 논문은 Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, Ren Ng이 공동으로 진행한 연구에 관한 논문으로, 신경 방사성 필드(Neural Radiance Fields, NeRF)를 사용하여 3D 장면을 표현하고, 이를 바탕으로 높은 품질의 뷰 합성(view synthesis)을 달성하는 새로운 방법을 제시한다. 복잡한 장면의 새로운 시점을 합성하기 위해, 소수의 입력 뷰를 사용하여 연속적인 볼륨 장면 함수를 최적화함으로써 최첨단 결과를 달성하는 방법을 제시한다. 이 알고리즘은 장면을 Fully Connected(비컨볼루셔널) 깊은 네트워크를 사용하여 표현하며, 이 네.. 2024. 3. 2.
Google Solution Challenge 2024 - Voice-Bridge Review 약 한달반간의 팀원과의 협업의 결과로 Voice Bridge라는 농인을 위한 양방향 통역 어플을 완성하였다. 간단한 소개는 아래의 2분짜리 데모영상에 나와 있다. https://youtu.be/2Yceyr7ussU 우리 팀의 깃허브 링크이다. 프론트 파트 1명 ,백엔드 파트 1명, 인공지능 파트 2명이서 열심히 지지고 볶아서 완성된 프로젝트이다. 내가 모은 팀원들이 모두 고생하여 완성을 해내서 기특하단 말을 해주고 싶다. https://github.com/GSC-voice-linker VOICE LINKER Communication App for the Deaf. VOICE LINKER has 4 repositories available. Follow their code on GitHub. .. 2024. 2. 28.
Google ML crash course (9) 특성 교차 특성 교차는 두 개 이상의 특성을 곱하여 (교차하여) 구성되는 합성 특성이다. 특성 조합을 교차하면 이러한 특성이 개별적으로 제공할 수 있는 것 이상의 예측 기능을 제공할 수 있다. 위와 같은 상태에서 선형 모델로 구분을 해내는 것은 불가능하다. 이떄 x1과 x2의 곱인 x3을 추가적인 feature로 이용하면 곱이 양수인 blue dot과 곱이 음수인 red dot을 구분해낼 수 있다. 선형 모델로 비선형성을 학습 시킬 수 있는 것이다. 이렇게 다른 변수의 곱으로 합성 특성을 만드는 과정을 일반적으로 특성 교차 곱이라고 부른다. 특성 교차와 대량의 데이터 사용은 매우 복잡한 모델을 학습할 수 있는 효율적인 전략 중 하나이다. 원-핫 벡터 교차 지금까지는 두 개의 개별 부동 소수점 특성을 특성.. 2024. 2. 19.
Pandas(5) 인덱싱 pandas의 인덱싱에 대해서 알아볼 것이다. 레이블기반 인덱싱, 정수기반 인덱싱, 앞에서 또는 뒤에서 n행 인덱싱, 멀티 인덱싱에 대해서 차근차근 알아보자. 레이블기반(스칼라) 기본적으로 DataFrame.at의 형태를 띈다. at 함수는 loc 함수와 같이 레이블 기반으로 인덱싱을 하지만, DataFrame과 Series에 상관없이 하나의 스칼라값에 접근한다는 차이가 존재한다. 행/열 한쌍에 대한 단일 값에 엑세스한다는 특징이 있다. 사용법은 아래와 같이 단순하게 이용할 수 있다. 값 가져오기 : result = df.at['행', '열'] 값 설정하기 : df.at['행', '열'] = value 예시 먼저 아래와 같이 기본적인 2x2 행렬을 만든다. df = pd.DataFrame([[1,.. 2024. 2. 4.
딥러닝 직접 구현하기 - (word2vec 보충) 확률적인 관점 우선 CBOW 모델을 확률적인 개념을 적용하여 개선을 해보고자 한다. 확률의 표기법을 간단히 살펴보자. 확률의 표기법을 간단하게 살펴보자. 확률은 P(.)이라고 한다. A의 확률은 P(A)라고 표기한다는 것이다. P(A,B), A와 B가 동시에 일어날 확률을 말한다. P(A|B), 사건이 일어난 후의 확률 즉 사후확률인데 이는 다시 말해서 B라는 정보가 주어졌을 때, A가 일어날 확률을 말한다. 그럼 CBOW 모델을 확률 표기법으로 기술해보자. CBOW 모델이 하는 일은, 맥락을 주면 타깃 단어가 출현할 확률을 출력하는 것이다. 이번에는 아래와 같이 말뭉치를 w1, w2, w3, .... wt로 단어 시퀀스를 표기하고 t번째 단어에 대해 윈도우 크기가 1인 맥락을 고려하도록 하자. 이를 w.. 2024. 2. 4.
딥러닝 직접 구현하기 - (word2vec 학습) 학습 데이터 준비 word2vec에서 이용하는 신경망의 입력은 맥락이다. 그리고 정답 레이블은 맥락에 둘러싸인 중앙의 단어, 즉 타깃이다. 우리가 해야 할 일은 신경망에 맥락을 입력했을 때 타깃이 출현할 확률을 높이는 것이다. 말뭉치에서 맥락과 타깃을 만드는 작업을 진행해보자. 우선 말뭉치 텍스트를 단어 ID 로 변환해야 한다. import sys sys.path.append('..') from common.util import preprocess text = 'You say goodbye and I say hello.' corpus, word_to_id, id_to_word = preprocess(text) print(corpus) print(id_to_word) 그런 다음 단어 ID의 배열인 corp.. 2024. 2. 2.
딥러닝 직접 구현하기 - (word2vec) 단순한 word2vec 지금까지 살펴본 모델을 신경망으로 구축하도록 하자. 사용해볼 신경망은 word2vec에서 제안하는 CBOW(continuous bag-of-words)모델이다. CBOW 모델은 맥락으로부터 타깃을 추측하는 용도의 신경망이다. 타깃은 중앙 단어이고, 그 주변 단어들이 맥락이다. 이 CBOW 모델이 가능한 한 정확하게 추론하도록 훈련시켜서 단어의 분산 표현을 얻어내는 것이 목표이다. CBOW 모델의 input은 맥락이다. 따라서 맥락을 one-hot 표현으로 변환하여 CBOW 모델이 처리할 수 있도록 한다. 위 그림은 CBOW 모델의 신경망이다. 입력층이 2개 있고, 은닉층을 거쳐 출력층에 도달한다. 두 입력층에서 은닉층으로 변환은 똑같은 FCN이 처리한다. 그후 은닉층에서 출력층 뉴.. 2024. 2. 1.
딥러닝 직접 구현하기 - (추론 기반 기법) 추론 기반 기법 지금까지 통계 기반 기법으로 단어의 분산 표현을 얻었는데, 이번에는 더 강력한 기법인 추론 기반 기법을 살펴보자. 추론 기반 기법의 추론 과정에서 신경망을 이용하는데 여기서 word2vec 이 등장한다. 우선 통계 기반 기법과 마찬가지로 추론 기반 기법도 그 배경에는 분포 가설이 있다. 통계 기반 기법의 문제점을 알아보고 그 대안인 추론 기반 기법에 대해서 알아보자. 통계 기반 기법의 문제 통계 기반 기법에서는 주변 단어의 빈도를 기초로 단어를 표현했다. 정확히는 동시발생 행렬을 만들고 그 행렬에 SVD를 적용하여 밀집벡터 즉 단어의 분산 표현을 얻었다. 그러나 실제로 다뤄야하는 말뭉치의 어휘 수는 너무 많다. SVD를 n X n 행렬ㄹ에 적용할때 시간 복잡도는 O(n^3)이다. 말뭉치의.. 2024. 2. 1.
Pandas(4) 함수 연속 적용 (축별) agg메서드는 apply와 비슷하게 함수를 적용하는 메서드이지만, 여러개의 함수를 동시에 적용할 수 있다는 장점이 있다. 또한 __name__을 통해 사용자정의 함수명을 따로 설정할 경우 그 이름을 사용한다는 점을 활용하여 함수를 사용한 DataFrame을 보다 깔끔하게 정리하는데도 용이하게 쓸 수 있다. 기본 형태는 다음과 같고 df.agg(func=None, axis=0, args, kwargs) 그 요소를 살펴보면 아래와 같다. func : 함수이다. axis :{0 : index(row) / 1 : columns} 축이다. (0은 행, 1은 열) arg : 함수의 인수이다. kwargs : dict 형태의 함수의 인수이다. 예시 먼저 간단한 3x3짜리 데이터를 만들어보자... 2024. 1. 31.
강화학습 - (BellmanOptEq) Optimal Policy 우선 매 상태마다 적합한 policy들이 존재할 텐데 이때 아래와 같이 optimal policy가 존재한다는 것을 전재로 한다. 1. 어떤 마르코프 결정 과정에 대해서도, 모든 다른 정책보다 좋거나 같은 최적 정책 π*이 존재한다. 2. 모든 최적 정책은 최적 가치 함수를 달성한다. 3. 모든 최적 정책은 최적 행동-가치 함수를 달성한다. 최적 정책 π*는 주어진 상태 s에서 가장 높은 가치를 가지는 행동 a를 선택한다. 이를 수학적으로 표현하면 아래와 같다. 최적 상태-가치 함수 v는 주어진 상태 s에서 가능한 모든 행동 a에 대해 최적 행동-가치 함수 q의 최대값을 취한다. 수학적으로는 아래와 같이 표현할 수 있다. Bellman Optimality Equation 특정한.. 2024. 1. 31.
딥러닝 직접 구현하기 - (통계 기반 기법 개선) 상호정보량 단어의 동시발생 행렬에는 개선할 점들이 있다. 왜냐하면 발생횟수라는 것은 그리 좋은 특징이 아니기 때문이다. 예를들어 "the"와 "car"의 동시발생을 생각해보면 두 단어의 동시발생 횟수는 아주 많을 것이다. 이때 "car"와 "drive"는 관련이 깊은데도 불구하고, 단순히 등장 횟수만을 본다면 "car"는 "drive"보다 "the"와의 관련성이 훨씬 강하다고 나올 것이다. "the"가 고빈도 단어라서 "car"와 강한 관련성을 갖는다고 평가되기 때문이다. 이 문제를 해결하기 위해 점별 상호정보량(PMI; Pointwise Mutual Information)이라는 척도를 사용한다. 이를 이용하여 단어 수 10,000개의 말뭉치가 있다고 할 때 "the", "car", "drice"가 각각.. 2024. 1. 29.
딥러닝 직접 구현하기 - (자연어처리) 자연어처리 자연어처리는 흔히 NLP라고 불리는 Natural Language Processing을 의미한다. 이는 말그대로 인간이 사용하는 말을 컴퓨터가 이해하고 처리하기 위한 기술이다. 컴퓨터가 이해할 수 있는 프로그래밍 언어가 아닌 인간들이 사용하는 영어, 한글과 같은 자연어를 이해할 수 있도록 하는 것이다. 이때 말은 '문자'로 구성되어있고 말의 의미는 '단어'로 인해 만들어진다. 따라서 컴퓨터가 '단어의 의미만 이해하면 인간의 '말'을 이해할 수 있을 것이다. 따라서 이런 '단어의 의미'를 컴퓨터에게 파악시키는 것은 자연어처리에서 굉장히 핵심적인 부분이다. Thesaurus Thesaurus는 단어의 의미를 정의를 통해 설명하여 이해하는 방식과는 다르게 동의어나 유의어를 통해 단어의 의미를 알아가.. 2024. 1. 28.
728x90