NoProviderFoundException 에러스프링 부트 프로젝트를 빌드하면서 다음과 같은 NoProviderFoundException 에러가 발생하는 일이 생겼다.jakarta.validation.NoProviderFoundException: Unable to create a Configuration, because no Jakarta Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath.문제 발생 원인다음과 같이 validaion 관련한 종속성을 build.gradle에 추가하지 않아서 생긴 문제였다. 종속성을 추가한 후, gradle refresh를 해주니 정상적으..
Attention is All You NeedTransformer 모델을 만들 때 attention은 매우 중요한 요소 중 하나이다. 사실상 트렌스포머 모델은 attention으로 구성된 encoder-decoder 구조의 아키텍쳐를 의미하는 모델이다. 따라서 트렌스포머를 이해하기 위해서는 attention을 이해하는 것이 필수적이다. 그럼 먼저 attention의 구조에 대해서 살펴보자. 위의 그림만 보아서는 잘 이해가 가지 않으므로, attention의 계산 공식을 먼저 뜯어보도록 하자. Attention은 다음과 같은 계산 공식을 따른다. Attention을 구하기 위해서는 Q, K, V 값이 필요한데, 이는 각각 Query, Key, Value를 의미한다. 이 Q, K, V 값들은 각각 다음과 같..
`혼동 행렬(Confusion matrix)`을 사용하면 분류(Classification) 문제에서 모델의 성능을 평가할 수 있다. TP, TN, FP, FN와 같은 개념들은 이진 분류에서 유명하지만, 멀티 클래스 분류에서도 사용되는 성능 평가 지표들이다. 이진 분류 및 멀티 클래스 분류에서 Confusion matrix을 계산하는 법을 알아보자.이진 분류에서 TP, TN, FP, FN의 의미먼저 각 값의 의미에 대해서 알아보자.<ul style="list-style-type: disc;" data-ke-list-type="dis..
2023년은 정말 많은 일이 있었던 시간이었다. 최근 Spotify의 2023 Wrapped도 받은 겸, 내가 겪은 경험과 느낀 점들을 정리하고자 글을 쓴다. 개인적인 정리이기도 하지만 3-4학년 생활을 정리하는 글인 만큼 진로를 고민하는 학부생들이 읽어도 좋을 것 같다(정작 나도 아직 학부생이지만). 작년에 나는 내 진로를 매우 고민하는 시간을 가졌었다. "나는 어떤 분야에 가장 관심이 있는 거지?"라는 의문이 굉장히 깊게 들었고, 이 고민에 대해서 많은 분들에게 조언을 구했었는데, 공통적인 답변은 "최대한 다양한 분야를 시도해 보고 그중에서 고르라"였다. 2023년은 이 조언에 충실하게 '최대한 많은 분야를 시도해 보는 것'이 목표였었다. Jan-Feb: 인공지능 보안 랩실의 학부생 인턴 2023년은..
Anaconda는 데이터 과학, 인공 지능, 기계 학습 등의 작업을 수행하기 위한 파이썬 기반 오픈 소스이다. 조금 더 자세히 설명하자면, 아나콘다는 가상환경(Virtual Environment)을 생성해 파이썬 환경을 격리함으로써 프로젝트 간의 의존성 충돌을 방지하고, 프로젝트 별로 필요한 패키지 및 라이브러리를 독립적으로 관리하는 도구이다. 아나콘다를 통해 가상환경을 사용하면 각 프로젝트 별 파이썬 라이브러리 의존성을 격리할 수 있기 때문에, 파이썬 프로젝트를 가동하기 매우 편리해지진다. 프로젝트 A, B에서 각각 다른 버전의 numpy 라이브러리를 사용한다고 할 때, 각기 다른 가상환경을 만들어주고 그 안에 numpy를 버전에 맞게 설치해주면 끝이기 때문이다. 리눅스 서버에 Anaconda를 설치하..