반응형 Programming57 [Model] About Transformer : Attention Is All You Need 이번 포스트는 최근 AI 분야에서 활발하게 활용되고 있는, Attention 구조를 활용한 Transformer 구조에 대해 다뤄보도록 하겠습니다. 우선, Transformer에 대한 논문은 다음과 같습니다. Attention Is All You Need The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new.. 2023. 10. 31. [Model] About Attention Mechanism 이번 포스트는 Transformer의 시초가 되는 Attention에 대해 간단하게 작성해 보도록 하겠습니다. 최근 AI와 관련된 논문들은 Transformer를 기반으로 한 경우가 꽤 많습니다. 그리고 이 Transformer는 Attention이라는 개념을 사용합니다. 이 Attemtion Mechanism은 NLP 분야에서 활용되는 seq2seq Model(≒ Encoder-Decoder Model)의 Sequence의 길이가 길어질수록 정보의 손실이 발생한다는 문제점을 개선하기 위해 제안된 방식입니다. (seq2seq에 대한 자세한 내용은 현재 페이지에서는 생략하도록 하겠습니다. Encoder-Decoder Model에 대한 자세한 내용은 다음 링크를 참조해 주세요.) [Model] About s.. 2023. 10. 31. [Model] About Multi-Head Attention 이번 포스트는 여러 가지 Attention이 종류 중 하나인, Multi-Head Attention에 대해 다뤄볼 예정입니다. Multi-Attention은 다음과 같이 Head의 수만큼 Attention을 각각 병렬로 나누어 계산을 한 후, 생성된 Attention Value들을 Concatenate 하여 하나로 합치는 과정을 의미합니다. 이와 같은 과정을 수행하면 Attention을 한 번 사용할 때와 같은 크기의 결과를 얻을 수 있습니다. 위 과정을 구체적인 예를 통해 다뤄보도록 하겠습니다. 아래 예시 이미지와 같이, 4x4 Size의 Embedding Vector와 4x8의 Query(2x4), Key(2x4), Value(2x4)가 있다면, 일반적인 Attention Mechanism은 [4x4.. 2023. 10. 31. [Model] About Self-Attention 이번 포스트는 Transformer의 근간이 되는 Self-Attention에 대해 다뤄볼 예정입니다. Transformer Model은 RNN 계열의 Model 없이 Attention만을 이용해 언어 모델을 만들고자 제안된 구조입니다. 이러한 Transformer Model은 RNN을 사용하지 않아 연산 효율이 좋아졌고 성능 또한 높아지는 결과를 얻게 되었습니다. NLP 및 CV 등 다양한 분야에서 SOTA를 달성한 Model이 Transformer를 기반으로 하는 Model들이니까요. Transformer Model은 강력한 성능만큼 내용도 꽤 복잡합니다. 그래서 Mechanism의 첫 번째로 Self-Attention에 대해 설명해 보도록 하겠습니다. 우선, Self-Attention의 기본이 되는.. 2023. 10. 31. [Model] About seq2seq (Sequence-To-Sequence) 이번 포스트는 seq2seq Model에 대해 다뤄보고자 합니다. 내용 중에 Encoder-Decoder의 개념도 포함되어 있으니 정리해 나가면서 진행해 보도록 하겠습니다. Sequence-To-Sequence Model은 한 Sequence를 다른 Sequence로 변환하는 작업을 수행하는 Deep Learning Model로 주로 자연어 처리(NLP) 분야에서 많이 활용됩니다. 기계 번역, 뭐... 한국어로 어떤 문장을 입력하면 이를 영어, 일본어, 중국어 등으로 번역하는 기본적인 번역기에 활용되기도 하고 어떤 질문을 입력하면 이에 대응하는 답변을 반환하는 Chatbot에도 활용됩니다. 더 나아가 Text Summarization, Speech To Text, Image Captioning과 같은 I.. 2023. 10. 31. [VS][Docker] Visual Studio Code에서 Docker 사용 프로젝트를 진행하면서 이제 Docker는 선택이 아닌 필수가 되어가는 추세입니다. 이번 포스트는 Visual Studio Code에서 Docker를 사용하는 방법에 간단히 다뤄보도록 하겠습니다. 우선, 본 포스트는 VS Code가 설치되어 있다고 가정하고 진행하겠습니다. VS Code를 실행한 후 다음과 같이 Extension을 클릭한 후 remote development를 설치합니다. 설치가 완료되었으면 이제 Docker를 설치합니다. 설치할 때 Docker와 Docker Explorer를 모두 설치해 줍니다. Docker Explorer를 설치해 주면 Terminal을 실행시키지 않고 VS Code IDE에서 GUI 형태로 Container를 다룰 수 있습니다. 위 3가지가 모두 설치 완료되면 다음과.. 2023. 6. 21. [VS][Conda] Visual Studio에서 Conda 환경을 연결하여 Python 개발 이번 포스트는 Visual Studio를 통해 Conda 환경에서 Python 개발을 진행하기 위한, 환경 구축 과정에 대해 간단히 작성하고자 합니다. 우선, Visual Studio를 설치합니다. 다음 링크를 통해 설치 파일을 다운로드할 수 있습니다. Visual Studio: 소프트웨어 개발자 및 Teams용 IDE 및 코드 편집기 Visual Studio 개발 도구 및 서비스를 사용하면 모든 개발자가 모든 플랫폼 및 언어로 앱을 쉽게 개발할 수 있습니다. 무료로 어디서나 코드 편집기 또는 IDE를 사용하여 개발하세요. visualstudio.microsoft.com 본인에게 필요한 Package들을 설치합니다. 물론 Python을 사용할 것이기에 해당 Package는 필수적으로 설치해야겠죠…? 구체.. 2023. 5. 19. [Code] XNect 이번 포스트는 3D Pose Estimation과 관련된 XNect이라는 논문을 PyTorch를 이용해 구현해볼 것입니다. 우선, Pose Estimation과 XNect이라는 논문에 관한 내용은 다음 포스트를 참조해주세요. [Pose Estimation] 2D/3D Pose Estimation에 관한 내용 Computer Vision과 관련된 AI, Deep Learning 분야에서 거의 필수적으로 다루는 주제가 있습니다. 바로 Pose Estimation인데요. 이번 포스트에서는 이 Pose Estimation에 관한 내용을 다루고자 합니다. Pose Estimation mj-thump-thump-story.tistory.com [Model] VNect과 XNect 이번 포스트는 Pose Estima.. 2023. 4. 4. [Sound Cropper] 사운드 파일 속, 소리 구간 추출 이번 포스트에서는 음성 데이터를 다룰 예정입니다. 음성 파일이 있을 때 해당 파일에서 소리가 나는 구간만 추출하는 프로그램을 만들어 보고자 합니다. 녹음된 파일 또는 음악 파일 등을 사용할 때, 빈 소리가 중간에 포함되지 않았으면 하는 경우가 있을 것입니다. 예를 들면, 1번 곡에서 2번 곡으로 넘어갈 때의 공백이 없어졌으면 좋겠다던지...? 실제 음악 플레이어에서 해당 기능을 제공하는 경우도 많고 개발하기 어려운 주제도 아니기에 의미가 없을 수도 있겠습니다만, 이러한 기초적인 기능이 다른 큰 프로젝트에서 활용되는 경우도 종종 있어서 다뤄볼 예정입니다. 구현 방식은 여러가지가 있겠지만, 정말 간편하고 쉽게 Waveform을 이용해 구현해 볼 것입니다. 우선, 전반적인 아이디어는 다음과 같습니다. 위와 같.. 2023. 3. 24. [Mouse] Raspberry Pi에서 마우스 커서 제어 이번 포스트는 기본적으로 표시되는 마우스 커서를 없애는 방법에 대해 다룰 예정입니다. 마우스커서가 있어야 마우스를 통해 아이콘이나 버튼 등을 클릭할 수 있을 것입니다. 내가 지시하고 있는 부분이 어디인지 알아야 뭔가를 할 테니까요. 그런데, 이러한 마우스 커서가 없어져야 하거나 방해가 될 때도 있습니다. 바로 영상을 보고 있을 때죠. 영상 위에 마우스커서가 떠있으면 거슬리니까요ㅎ 위와 같은 경우는 이전에 다루었던 Video Player를 개발했을 때 활용해 볼 수 있을 것입니다. 궁금하시면 참고해 보시면 좋을 것 같습니다. [QT] Python을 이용한 Video Player 개발 이번 포스트는 Python을 기반으로 여러 가지 Video를 플레이하는 프로그램을 만들어보도록 하겠습니다. 그리고 이를 Ra.. 2023. 3. 23. [GPIO] Raspberry Pi에 스위치/버튼 연결 후 Shutdown/Reboot, Keyboard Event 수행 이번 포스트는 Raspberry Pi에 Button(Switch)를 부착하고 이를 활용하는 방법에 대해 다뤄보고자 합니다. 우선, 일전에 다뤄보았던 Video Player에 활용될 수 있는 사항이니 궁금하시다면 참고해 주세요. [QT] Python을 이용한 Video Player 개발 이번 포스트는 Python을 기반으로 여러 가지 Video를 플레이하는 프로그램을 만들어보도록 하겠습니다. 그리고 이를 Raspberry Pi에서 플레이해보도록 할 것입니다. 우선, 개발하고자 하는 프로그램에 mj-thump-thump-story.tistory.com (활용도에 대해 잠깐 설명하자면, 버튼 0을 누르면 OS가 종료되거나, 버튼 1을 누르면 다음 영상으로 넘어가고 버튼 2를 누르면 이전 영상으로 돌아가도록 하.. 2023. 3. 23. [Environment] Raspberry Pi 초기 Setting 이번 포스트는 Raspberry Pi를 제대로 사용하기 위한 초기 Setting과정을 다뤄볼 것입니다. 우선, HW를 구성해야 하겠죠...? 뭐... 구성하고자 하는 목적에 따라 조금씩 다르겠지만, 라즈베리파이를 PC처럼 활용하고자 한다면 [Raspberry Pi 본체 + 키보드 + 마우스 + 모니터 또는 LCD 디스플레이 + SD카드]가 필요할 것입니다. HW 부분 연결도는 다음과 같습니다. PC에 연결하듯이 각 단자에 연결해 주시면 됩니다. 만일 LCD 디스플레이를 연결해 사용하고자 한다면, 사용하는 LCD 제품에 따라 연결 부분은 조금 상이해지겠지만 해당 부분은 대부분 제조사 문서에 나와있으니 보시고 그대로 연결해 주면 될 것입니다. 이제, SW적인 부분을 구성해 봅시다. 다음 링크에서 Raspbe.. 2023. 3. 23. [QT] Python을 이용한 Video Player 개발 이번 포스트는 Python을 기반으로 여러 가지 Video를 플레이하는 프로그램을 만들어보도록 하겠습니다. 그리고 이를 Raspberry Pi에서 플레이해보도록 할 것입니다. 우선, 개발하고자 하는 프로그램에 대해 간략히 설명해 보도록 하겠습니다. 프로그램을 실행시키면 0번 영상과 0번 사운드가 플레이됩니다. 그리고 키보드 I 또는 O를 클릭하면 다음 영상 또는 이전 영상이 플레이됩니다. 이때 맨 처음 영상일 때는 O를 눌러도 이전 영상이 아닌 처음 영상이 플레이되어야 하며, 마지막 영상의 경우는 I를 누르면 처음 영상으로 넘어가야 합니다. 또한 사운드의 경우는 0번 영상부터 2번 영상까지는 0번 사운드가, 3번 영상부터 14번 영상까지는 1번 사운드가 이후 영상부터 마지막 영상까지는 2번 사운드가 플레.. 2023. 3. 21. [Pyinstaller] ModuleNotFoundError 문제 해결방법 Pyinstaller를 통해 EXE 파일을 생성하였을 때 Module을 찾을 수 없다는 Error가 발생되곤 합니다. 이번 포스트는 이를 해결하는 몇 가지 방법에 대해 다루고자 합니다. Prompt 환경에서 Python Script를 실행하였을 때는 문제없이 프로그램이 정상적으로 수행되었지만, Pyinstaller를 통해 EXE 파일로 추출한 후 해당 프로그램을 실행하면 Module을 찾을 수 없다는 Error Message를 받게 되면서 정상적인 실행이 되지 않는 문제가 꽤 자주 발생됩니다. 위와 같이 Module을 찾을 수 없다는 Error가 발생되면 다음과 같은 방식으로 해결해 볼 수 있습니다. 1. Pyinstaller의 버전을 업그레이드 시켜줍니다. 최신 버전을 사용하게 되면 이전에는 찾지 못했.. 2023. 3. 14. [Code] VNect 이번 포스트는 3D Pose Estimation과 관련된 VNect이라는 논문을 TensorFlow를 이용해 구현해 볼 것입니다. 우선, Pose Estimation과 VNect이라는 논문에 대한 내용은 다음 포스트를 참조해주세요. [Pose Estimation] 2D/3D Pose Estimation에 관한 내용 Computer Vision과 관련된 AI, Deep Learning 분야에서 거의 필수적으로 다루는 주제가 있습니다. 바로 Pose Estimation인데요. 이번 포스트에서는 이 Pose Estimation에 관한 내용을 다루고자 합니다. Pose Estimation mj-thump-thump-story.tistory.com [Model] VNect과 XNect 이번 포스트는 Pose Es.. 2023. 3. 13. 이전 1 2 3 4 다음 반응형