Development/AI

파이토치로 배우는 자연어 처리 - 리뷰

고고마코드 2021. 12. 23. 10:23
반응형

자연어처리의 기본을 공부하기 위해 '파이토치로 배우는 자연어처리'를 읽고 작성한 리뷰입니다.
지인에게 선물 받은 책으로 작성한 리뷰입니다.


책 소개

파이토치로 배우는 자연어 처리

파이토치로 배우는 자연어 처리 - 딥러닝을 이용한 자연어 처리 애플리케이션 구축

출판사 : 한빛미디어

지은이 : 델립 라오(Delip Rao), 브라이언 맥머핸(Brian McMahan)

옮긴이 : 박해선


리뷰

이 책의 목표는 자연어 처리와 딥러닝을 처음 접하는 독자에게 두 분야에서 중요한 주제를 맛보도록 하는 것이라고 설명하고 있습니다. 그 목표에 맞게 사전지식이 없고 수학이 어려운 사람들에게 접근하기 쉽게 작성한 책입니다.

  • 첫 번째로 마음에 들었던 부분 중 하나는 수학 공식이 거의 없다는 것입니다.
    보통 인공지능 관련 책을 보게 되면 많은 수학 공식을 접하게 됩니다. 물론 당연히 수학 지식이 필요하지만 처음 접하는 사람들에게는 진입 장벽이 높게 느껴질 수 밖에 없었습니다. 그래서 저에게는 더 좋았던 책입니다.


  • 두 번째로 마음에 들었던 부분은 각 예제의 설명을 보고 코드를 보면 이해하기 쉬웠습니다.
    코드가 세세한 주석을 통해 이해하기 쉽게 작성되어 있습니다.

for batch_index, batch_dict in enumerate(batch_generator):
    # 훈련 과정은 5단계로 이루어집니다

    # --------------------------------------
    # 단계 1. 그레이디언트를 0으로 초기화합니다
    optimizer.zero_grad()

    # 단계 2. 출력을 계산합니다
    y_pred = classifier(batch_dict['x_surname'])

    # 단계 3. 손실을 계산합니다
    loss = loss_func(y_pred, batch_dict['y_nationality'])
    loss_t = loss.item()
    running_loss += (loss_t - running_loss) / (batch_index + 1)

    # 단계 4. 손실을 사용해 그레이디언트를 계산합니다
    loss.backward()

    # 단계 5. 옵티마이저로 가중치를 업데이트합니다
    optimizer.step()
    # -----------------------------------------

    # 정확도를 계산합니다
    acc_t = compute_accuracy(y_pred, batch_dict['y_nationality'])
    running_acc += (acc_t - running_acc) / (batch_index + 1)

    # 진행 바 업데이트
    train_bar.set_postfix(loss=running_loss, acc=running_acc, 
            epoch=epoch_index)
    train_bar.update()

train_state['train_loss'].append(running_loss)
train_state['train_acc'].append(running_acc)

위 코드는 책에 포함된 코드입니다.

위 코드처럼 해당 코드가 어떤 역할을 하는지 명확한 주석이 달려 있어 이해하기 쉽습니다.

구글 코랩을 통해 쉽게 따라할 수 있어서 좋았습니다.

  • 세 번째로 마음에 들었던 점은 구성이 좋다는 점입니다.
    기초 지식부터 간단한 예제, 라이브러리 활용으로 이어지며 독자가 잘 따라올 수 있는 구성으로 되어 있습니다.

이 책은 지도학습을 기반으로 쓰여진 책입니다. 그렇기에 책의 시작인 1장에서는 기본이 되어야 하는 지도학습이 무엇인지부터 설명하고 있습니다. 또한 파이토치를 기본으로 사용하기에 파이토치 설치부터 함수, 라이브러리 활용까지 설명하고 있습니다.

2장에서는 자연어처리를 다루는 만큼 자연어처리 기술에 대하여 간략하게 설명하고 있습니다.

3장에서는 신경망에 대한 기본을 잡아줍니다. 활성화 함수, 손실 함수, 훈련, 모델 성능 측정 등에 대한 설명을 하고 있으며 예제로 직접 실습까지 할 수 있습니다.

이후에는 기본 개념 설명과 다양한 라이브러리, 예제를 통한 활용을 반복적으로 학습합니다.


결론

딥러닝의 빠른 발전으로 자연어 처리에도 많은 변화가 생겼으며 최근 사람과 가장 가까워진 인공지능이라고 생각합니다. Siri, Bixby, google Assistant 등 음성비서는 기본으로 사용하고 있으며 다양한 앱에서도 음성인식을 통해 편리하게 사용하고 있습니다. 기가지니, 카카오미니 등의 제품들로 집에서도 자연스럽게 사용하는 기술이 되었습니다.

그 만큼 활용 범위에 있어서도 아주 다양한 영역이 자연어처리입니다. 그러나 자연어 처리는 이미지 인식이나 문자 인식보다 어렵다고 생각합니다. 이렇게 어려운 내용을 독자들이 이해하기 쉽게 쓴 책이라고 생각합니다.

딥러닝, 자연어처리에 대한 사전지식이 없는 사람들을 대상으로 기본을 탄탄하게 하고 활용까지도 할 수 있도록 도와주는 책입니다. 자연어 처리에 관심이 있거나 기본을 탄탄하게 만들고 싶다면 많은 도움이 될 것이라고 생각합니다.


반응형