AI 부트캠프/챕터2(10.14~11.08) 21

TIL 24

강의 외부에서 추가로 알게 된 내용isdigit()문자열 메서드로, 문자열이 숫자로만 구성되어 있는지를 확인할 때 사용된다. 문자열이 숫자(0-9)로만 구성되어 있으면 True를 반환하고, 그렇지 않으면 False를 반환한다. 즉, 음수 부호(-), 소수점(.), 공백, 알파벳 등이 포함된 경우 False를 반환하고, 숫자로만 이루어진 문자열일 때만 True를 반환하다.# 사용법문자열.isdigit()# 예시print("123".isdigit()) # True: 모든 문자가 숫자이므로 Trueprint("abc".isdigit()) # False: 숫자가 아닌 문자가 포함됨print("12a3".isdigit()) # False: 숫자가 아닌 문자가 포함됨print("45 ".isdigit())..

TIL 23

정확도가 학습 초기부터 100%로 나올 때데이터 분할, 모델 설정 또는 데이터셋 전처리 과정에서 생긴 잠재적인 문제일 가능성이 높다. 정확도가 100%가 나온 원인과 이를 해결할 수 있는 방법을 알아보자. 레이블 인코딩을 확인해보자. LabelEncoder가 label_pipeline 안에서 fit_transform을 호출하는데, 이 방식은 각 샘플을 처리할 때마다 전체 데이터에 대해 재적용될 수 있어, 모든 데이터가 같은 값으로 인코딩될 위험이 있다. 이를 방지하려면 한 번만 fit하여 레이블을 미리 인코딩하는 것이 좋다.# 수정 전 코드# 토크나이저 및 레이블 인코더 정의tokenizer = get_tokenizer("basic_english")label_encoder = LabelEncoder()...

WIL 4

머신러닝 딥러닝이라는 말도 처음 들어보았다. 인공지능이라는 말만 많이 들어봤지, 그 속에 무엇이 있는 지는 이번에 처음 알게 되었다. 처음 듣는 용어들도 많고 수학적 개념도 많아서 설명을 알아듣기가 매우 어려웠다. 그러나 팀 과제가 주어지면서, 빨리 강의 진도를 나가야 해서 충분히 이해하면서 들을 시간이 없었다. 우선 진도라도 다 빼고 팀 과제를 시작하게 되었다. 그렇게 시작한 팀 과제 중 필수 과제는 이미 정답이 다 주어져서 원활하게 진행할 수 있었다. 추가하고 변경할 부분과, 개념적인 부분들을 찾으면서 금방 해결할 수 있었다.  그러나 도전과제는 시작부터 문제였다. 아직 개념도 다 잡히지 않은 상태라서 나에게 주어진 과제가 도대체 무엇을 하기 위한 것인지부터 이해를 해야 했다. 조원들과 튜터분들의 도..

TIL 22

도전 과제를 진행하면서 만난 다양한 오류들 NameError: name 'device' is not defined 코드에서 device라는 변수가 정의되지 않았기 때문에 발생한다. device는 보통 PyTorch에서 모델과 데이터를 CPU 또는 GPU로 이동시키기 위해 사용된다. 아래 코드는 GPU가 사용 가능한 경우, GPU를 사용하고 그렇지 않으면 CPU를 사용한다는 뜻이다.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')그러고 나면 이제 모델과 데이터를 지정한 device로 이동시켜야 한다.# 모델 초기화model = LSTMModel(vocab_size, embed_dim, hidden_dim, output_dim).to..

TIL 21

강의 외부에서 추가로 알게 된 내용lambda 함수lambda 함수는 간단한 함수 정의를 위해 사용되는 구문이다. 일반적으로 작은 기능을 수행하는 간단한 함수를 한 줄로 작성할 수 있게 해준다. 구조는  lambda 인수들: 표현식 이다. 이름이 없기 때문에 '익명 함수'라고도 불리며, 보통 다른 함수에 인자로 넘기거나, 간단한 연산을 위해 사용된다.# 예시1) 어떤 수의 제곱을 구하는 lambda 함수square = lambda x: x ** 2print(square(5)) # 출력: 25# 예시2) 두 수의 합을 구하는 lambda 함수add = lambda x, y: x + yresult = add(3, 5)print(result) # 출력: 8# 이는 x와 y를 받아서 그 합을 반환하는 함수이..

TIL 20

과적합(OverFitting) 방지 기법딥러닝의 큰 문제 중 하나이다. 우리는  모델이 얼마나 학습을 해야 하는 지를 알기가 어렵다. 이를 판별할 방법이 없으니까, 과적합 방지 기법이 나온 것이다. 대표적인 방법으로 정규화와 드롭아웃, 조기 종료와 데이터 증강이 있다. 정규화(Normalization)는 모델의 학습을 안정화하고 성능을 향상시키기 위해 데이터를 일정한 범위로 조정하는 기법이다. 여기서 데이터는 입력 데이터뿐만 아니라, 여러 개, 즉 딥러닝에서 사용되는 다양한 데이터 형태를 모두 포함한다. 그렇기 때문에 정규화의 종류는 꽤 많다. 배치 정규화(Batch Normalization)는 미니 배치에서 활성화 값을 정규화하는 기법이다.  레이어 정규화(Layer Normalization)는 각 레..

TIL 19

합성곱 신경망 CNN (Convolutional Neural Network)이미지와 같은 2차원 데이터를 효율적으로 분석하기 위해 개발된 신경망으로, 주로 합성곱 층, 풀링 층, 완전 연결 층으로 구성한다. 합성곱 층(Convolutional Layer)은 입력 이미지에 커널(필터)을 적용해 특징 맵을 생성한다. 커널은 이미지의 일부에서 패턴을 찾아내고 학습하는 역할을 한다. 풀링 층(Pooling Layer)은 특징 맵의 크기를 줄이고 핵심적인 특징을 추출한다. 주로 최대 풀링(Max Pooling)과 평균 풀링(Average Pooling)이 사용되며, 최대 풀링은 필터 내에서 가장 큰 값을 선택하여 중요한 정보를 강조하고, 평균 풀링은 필터 내에서 평균 값을 계산하여 정보 손실을 최소화하며 크기를 ..