AI

    [pytorch] torch.tensor.detach() 의 기능

    파이토치에서 Tensor 객체의 detach() 메소드는 현재 Tensor 객체와 동일한 데이터를 가지지만 연산 그래프(Computational Graph)에서 분리된 새로운 Tensor 객체를 생성합니다. 이 메소드는 일반적으로 Tensor 객체를 다른 Tensor 객체로 변환하고자 할 때 사용됩니다. 예를 들어, 주어진 Tensor 객체에 대한 연산의 결과로 생성된 새로운 Tensor 객체가 있을 때, 이 새로운 Tensor 객체를 사용하여 추가적인 계산을 수행하고자 할 때, 기존 Tensor 객체의 연산 그래프와의 의존성을 제거하여 메모리 사용량을 줄이고 계산 속도를 향상시키는 데 유용합니다. detach() 메소드는 requires_grad 속성을 False로 설정하여 기존 Tensor 객체와 다..

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

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

    [강화학습] 조작적 조건화와 스키너 상자(Skinner Box)

    강화학습이란? 강화학습(Reinforce Learning) 구현에 앞서, 강화학습이란 무엇인지 짚고 넘어가야 할 필요가 있다고 생각합니다. 강화학습의 가장 큰 특징은 사람처럼 시행착오를 통해 학습해가는 점이라고 할 수 있습니다. 즉, 어떤 행동을 취해보고, 그 결과가 좋았는지 나빴는지 확인하고 그 행동을 평가하여 조금씩 스스로 방법을 개선해 나간다고 할 수 있죠. 이러한 성질때문에, 게임 분야에서 강화학습의 예시가 직관적으로 다가옵니다. 강화학습은 시행착오의 결과로 얻은 보상(reward)에 따라 행동을 형상하게 되는데, 이런 보상에 의한 행동 형성을 조작적 조건화(operant conditioning)이라고 합니다. 스키너 상자 (Skinner Box) 예시를 통해 강화학습의 원리를 조금 더 직관적으로..

    [인공지능] 프레임 문제 (Frame Issue)

    바로 예를 들어 인공지능이 갖고 있는 프레임 문제에 대해 설명드려보겠습니다. 인공지능에게 '햄버거집에서 햄버거를 사와라' 라고 요구했다고 생각해봅시다. 실제 이 일을 수행하는데, 햄버거를 사러 다녀오는 과정에서 무수하게 다양한 사건이 일어날 가능성이 있습니다. 대부분 목적과는 관계가 없는 문제겠죠. 하지만 인공지능은 일어날 수 있는 사건 주에서, 햄버거를 사는 일에 관계된 것만을 추출해내고, 그 외의 일은 당분간은 염두에 두면 안되겠죠. 만약 모든 사건을 고려한다면, 무한한 시간이 걸릴 것입니다. 이처럼 어떤 테두리(프레임)를 만들고, 그 테두리 안에서만 사고할 필요가 있는데 이것을 바로 프레임 문제라고 합니다. 미리 프레임을 여러 개 정해 두어, 상황에 따라 적절한 프레임을 선택해 사용하면 해결할 수 ..

    [인공지능] Strong AI vs Weak AI

    2010년도 후반에 이르러 인공지능의 쓰임새는 나날이 증가하고 있습니다. 컴퓨팅 파워, 센서, 사물의 데이터화 등을 통해 무수히 데이터가 쌓이기 시작하고, 이를 저장하고, 처리하고, 활용할 수 있는 솔루션이 인공지능 사용을 계속해서 촉진하고 있기 때문이죠. 인공지능은 흥망성쇠를 거듭하며 인공지능은 Strong AI와 Weak AI로 나뉘었습니다. Strong AI Strong AI는 구성론적인 접근으로 굉장히 연역적인 부분이 있습니다. 인간의 지능을 재현하려는 과정을 통해 인간을 이해하려고 하는 완벽주의적 AI입니다. 따라서 인지발달 로보틱스, 뇌신경 과학 등에서 추구하는 인공지능이기도 하죠. 하지만 인간의 뇌를, 뉴런을 표현하기에는 우리의 기술은 아직도 한없이 부족합니다. 수십억개에 달하는 뉴런과 그와..

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

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