본문 바로가기

분류 전체보기68

[머신러닝] 0. 머신러닝 공부에 들어가기 앞서 안녕하세요~ 오늘부터는 머신러닝 알고리즘들에 대해서 알아볼 겁니다. 머신러닝 공부를 시작하는 다양한 이유가 있겠지만, 저 같은 경우에는 딥러닝을 공부하다가 필요성을 느껴서 머신러닝에 대해 공부를 해보게 되었습니다. 인공지능을 크게 분류해 보면 아래와 같이 구분할 수 있습니다.이 중에서도 현재 가장 핫한 chatGPT와 같은 인공지능들은 딥러닝에 속합니다. 딥러닝에 속하지 않은 머신러닝 기법들은 딥러닝이 발전하기 주로 사용되던 기법들입니다. 그런만큼 사실 지금은 딥러닝 기법에 비해 성능이 떨어지는 것이 사실입니다. 그럼에도 머신러닝 공부의 필요성을 느낀 것은 다음과 같은 이유에서입니다. 첫번째로, 딥러닝 연구들 중에서도 머신러닝 기법에 기반한 연구나 기술이 많습니다. 예를 들어, 딥러닝에서 사용하는 Gra.. 2024. 11. 26.
[NLP-6] Masking을 이용한 언어 사전 학습 모델 BERT 1. BERT 학습방식2. BERT 모델 구조3. BERT 사전학습 효과4. BERT 미세조정5. BERT 학습해보기1. BERT 학습 방식BERT 역시 GPT와 마찬가지로 NLP의 대규모 비지도 사전학습 모델의 일종입니다. 그렇기 때문에 BERT의 등장 배경이나 목적은 GPT와 유사합니다.(참고) BERT도 라벨링을 하지 않은 대규모 텍스트를 학습할 방법에 대해서 연구한 방법이죠.GPT는 문장이 주어졌을 때, 맨 앞의 단어부터 뒤까지 차례대로 예측하는 것을 학습했었죠. BERT는 masking 기법응ㄹ 이용해 텍스트를 학습합니다. Masking이란 이름 그대로, 텍스트의 일부를 가리는 것을 말합니다. 문장이 주어졌을 때, 그 문장의 일부 단어를 랜덤하게 가린 뒤, 모델에게 해당 부분에 알맞은 단어를 예.. 2024. 7. 30.
[NLP-5] GPT: Generative Pretrained Transformer 0. Intro1. GPT    1.1. GPT 학습    1.2. GPT 모델구조    1.3. GPT 사전학습의 효과2. GPT로 챗봇 학습해보기    2.1. 데이터 전처리    2.2. 모델 학습    2.3. 결과 확인0. Intro앞서 attention 레이어에 대해 자세히 살펴보고 transformer 모델에 대해 간단히 언급하고 넘어갔습니다.Attention 레이어가 rnn 레이어에 비해 갖는 장점은 아래와 같습니다. 순차적으로 계산되던 rnn과 달리 시퀀스를 병렬적으로 처리하여 시간을 줄일 수 있다.문장의 길이가 길어지더라도 기울기 소실 문제가 발생하지 않는다.이 2개의 장점 중에서도 특히 첫번째 장점이 미치는 영향이 컸습니다. 이 장점으로 인해 대규모의 텍스트 데이터를 사전학습하는 것이.. 2024. 7. 21.
[파이썬 기초] 7. 오류를 해결해보자 아무리 날고기는 프로그래머라도 피해갈 수 없는 것이 있습니다. 바로 코딩 오류입니다. 사람인 이상 한번에 완벽한 코드를 짤 수는 없습니다. 코딩은 원래 코드 작성시간보다 코드를 수정하고 에러를 해결하는 시간이 훨씬 깁니다. 그런만큼 여러분도 코딩에서 발생하는 오류들과 친해질 필요가 있습니다. 오류를 해결하는 능력도 결국 경험이 가장 중요합니다. 하지만 초보땐 막막할 수 있으니까 조금이라도 가이드를 제시해 보고자 합니다.1. 오류 찾는 방법코딩 오류는 보통 어디서 에러가 발생했고 왜 에러가 발생했는지 에러 메세지를 출력해 줍니다. 에러 메세지 하나를 살펴보겠습니다.빨간 줄로 그은 부분을 보면 "main.py" 파일의 4번째 줄에서 에러가 발생했다는 것을 알 수 있습니다. 그러면 여러분은 오류를 해결하기 위.. 2024. 6. 28.
[파이썬 기초] 6. 파이썬 모듈과 라이브러리 프로젝트가 커지고 코드가 커질수록 관리하기 어렵습니다. 앞서 살펴 본 클래스도 코드 관리를 수월하게 하기 위한 수단이었죠. 하지만 클래스를 쓰더라도 코드가 너무 길어지면 찾고 싶은 코드가 어딨는지 찾기 어렵고 관리하기 어려운건 매한가지 입니다. 그래서 코드가 길어지면 기능에 따라 여러 개의 파일로 나눠서 코드를 작성하게 됩니다. 오늘은 파이썬 코드를 여러 개의 파일에 나눠서 작성하고 하나의 파일에서 다른 파일의 코드들을 불러오는 방법에 대해 살펴보겠습니다.1. 파이썬 모듈 관리2. 파이썬 라이브러리1. 파이썬 모듈 관리파이썬 모듈 관리를 연습해보기 위해 작업할 폴더를 하나 만들어서 visual studio code에서 열어 보겠습니다.'모듈 연습' 폴더를 만든 뒤, 그 안에 main.py와 module... 2024. 6. 27.
[파이썬 기초] 5. 클래스 1. 절차지향언어와 객체지향언어2. 클래스    2.1. 클래스의 속성    2.2. 클래스의 상속    2.3. 클래스의 활용1. 절차지향언어와 객체지향언어클래스에 대해 설명하기 전에 클래스의 등장배경에 대한 이론을 먼저 설명드리겠습니다. 코딩을 하는 방식은 절차지향언어와 객체지향언어 2가지로 나눌 수 있습니다. 절차지향언어란 위에서 아래로 순차적으로 명령어가 실행되는 언어를 말합니다. 쉽게 이해하자면 아직 클래스를 배우지 않은 여러분이 클래스를 사용하지 않고 작성하는 코드가 절차지향언어라고 볼 수 있습니다. 객체지향언어란 함수, 변수 등을 객체화하여 프로그래밍하고 실행하는 언어를 말합니다. 여기에는 클래스가 사용되죠. 두 방식의 차이를 보기위해 간단한 도형의 넓이를 구하는 프로그램을 예시로 들어보겠습.. 2024. 6. 25.