딥러닝

    [딥러닝] 리눅스 ubuntu 22.04 LTS - CLI 설치 방법

    설치 시, 다음 블로그를 많이 참고했습니다. (https://shanepark.tistory.com/289) Ubuntu 22.04 LTS 선택 이유 딥러닝 서버를 구축하면서, 리눅스 서버로 ubuntu를 선택하는데에는 그리 어려운 선택은 아니었습니다. centOS 8은 지원이 중단되고, 제가 선택한 부품들을 호환하는 데에는 ubuntu가 최적이었기 때문입니다. 안정성을 생각하면 20.04를 선택할 수도 있었지만, 2023년 1월에 출시한 RTX 4070ti를 지원하는 nvidia driver를 support하는 ubuntu 버전이 22.04 인 것을 감안했을 때, 22.04 LTS를 선택했습니다. Rufus와 usb를 이용한 ubuntu iso 준비 (자세한 설명은 추후 보강) 1. 최소 4GB 이상..

    [조립 pc] 개인용 딥러닝 워크스테이션, 구축 예산과 부품 선정 이유

    현직 데이터사이언티스로써 회사의 서버를 사유하다시피 사용할 수도 있지만, 노후된 서버 장비와 구식 gpu로는 딥러닝에 대한 갈증이 해소가 되지 않았다. 논문 작업을 진행하고, 트랜스포머 기반의 모델을 점점 응용하며 적용해 나아갈 것 같은 이 시점에서 "딥러닝 서버가 정말 필요할 것 같다"라는 생각이 들었다. 내가 구매한 부품은 다음과 같다. 개인용으로 사용하기에 좋다면 좋은, 부족하다면 부족한 사양이지만, 향후 업그레이드와 확장을 염두에 두고 구매를 진행했다. 허민석이라는 채널의 유튜브를 많이 참고했으며, 해당 유튜브에서 조립한 딥러닝 pc가 2020년 기준인 것을 감안하고 내 기준으로 조금씩 변형하여 부품을 선정했다. 총 330만원의 예산이 들었으며, 운이 좋게도 상당히 저렴한 가격에 고성능 부품을 가..

    [Tensorflow] AutoEncoder 오토인코더 구현하기

    본 포스팅은 Applied Deep Learning - Autoencoders 편을 참고하였습니다. 오토인코드는 입력과 출력이 동일한 피드포워드 신경망의 한 유형입니다. 입력을 의도적으로 낮은 차원의 '코드'로 압축, 이후에 이 압축된 '코드'라는 표현을 기반으로 출력을 재구성(reconstruct)합니다. 코드는 입력의 간결한 "요약" 또는 "압축"이며 '잠재 공간 포현 (latent space representation)'이라고도 합니다. 오토인코더의 구성요소 오토 인코더는 [ 인코더, 코드, 디코더 ] 총 3개의 요소로 구성되어 있습니다. 인코더는 입력을 압축하고, 압축된 입력은 코드가 됩니다. 디코더는 이 코드를 사용하여 입력을 재구성합니다. 아래는 오토인코더의 동작 예시입니다. MNIST의 데이..

    [딥러닝] 합성곱 신경망 - 직관적으로 convolutional layer 깊이에 대해 이해하기

    본 포스팅에서는 수식적으로 합성곱 연산을 설명하기 보다는 그림에 의존한 직관적인 내용을 이야기 해보겠음 합성곱 연산 완전 연결층(Dense Layer)과 합성곱 층(Convolutional Layer) 사이의 근본적인 차이는 어떻게 될까? Dense층은 입력 특성 공간에 있는 전역 패턴을 학습하지만, 합성곱 층은 지역 패턴을 학습합니다. 만약 이미지라면 작은 2D 윈도우로 입력에서 패턴을 찾습니다. 컨브넷은 두 가지 흥미로운 성질을 제공하는데요. 첫째, 학습된 패턴은 평행 이동 불변성(translation invariant)를 갖습니다. 컨브넷이 이미지의 오른쪽 아래 모서리에서 어떤 패턴을 학습했다면, 다른 곳(예를 들어 왼쪽 위 모서리)에서도 이 패턴을 인식할 수 있습니다. 해당 패턴을 학습했기 때문에..

    트랜스포머(Transformer) - 1 (포지셔널 인코딩)

    트랜스포머는 Attention 메커니즘을 이해한 뒤 읽는 것을 추천한다. 트랜스포머는 NLP에서의 예제가 풍부하며, 그외 다른 State-of-the-Art (SOTA) 기술의 기반이 되는 알고리즘이다. 특히 기계 번역 분야에서 이 모델은 seq2seq의 구조인 인코더-디코더를 따르면서도, RNN을 사용하지 않고도 RNN보다 우수한 성능을 보여주었다. 필자는 아직도 트랜스포머에 대해 공부하고 있으며, 트랜스포머 자체가 방대하고 복잡하게 설계된 알고리즘이기에, 여러 차시로 나눠서 트랜스포머에 대해 설명하고자 한다. 요약본의 상당 부분은 유원준 & 안상준 저의 책을 참고하였음을 사전에 밝힌다. 1. 기존 seq2seq 모델의 한계와 Transformer의 동작원리 seq2seq 모델의 기본 구조는 인코더-디..

    [Attention Mechansim] 바다나우 어텐션

    NLP 심화과정 & 딥러닝에서 Transformer와 BERT 레벨의 알고리즘을 공부할 때 필요한 개념인 어텐션 메커니즘, 그중에서도 범용적으로 많이 사용되는 바다나우 어텐션에 대해 알아보자. 이 메커니즘에 대해 알기 위해서는 seq2seq 개념이 선행되어야 이해하기 쉬울 것이다. 단순 닷 프로덕트 어텐션 보다는 조금 더 복잡하지만, 자주 활용하고 한번 테스트 코드라도 작성해 본다면 이해하기가 크게 어렵진 않은 개념이다. 바다나우 어텐션 함수는 Attention(Q, K, V) = Attention Value 로 정의가 되는데, t: 어텐션 메커니즘이 수행되는 디코더 셀의 현재 시점을 의미 Q (Query): t-1시점의 디코더 셀에서의 은닉 상태 K (Keys): 모든 시점의 인코더 셀의 은닉 상태들 ..