欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World
728x90
반응형

분류 전체보기 99

[취업후기] 입사 D-3

누군가는 이 글을 볼 것이다. 나는 취준기간 중 3, 4개월을 제외하고는 혼자 했고, 그 3, 4개월동안 진행한 스터디도 잘 활용하지 못했다.혼자 준비하는 기간이 길어질수록 어떻게 공부해야 하는지, 어떻게 준비해야 하는지에 대해 방향을 잡지 못했다.또, 자꾸 떨어지기만 했던 경험 때문인지 자기 자신에 대한 확신 또한 옅어졌다. 이 글은 그런 나의 상황을 정리하며 설명하는 글이다. 지금 AI 분야로 취준을 하는 누군가에게 조금이나마 도움이 되었으면 하는 마음으로 이 글을 쓴다.  긴 글을 읽기 싫으면 아래 부분으로 가자. 폭풍 같이 2주가 지나고 입사결정이 났다.필요한 서류를 제출하고, 이제 진짜 시작하기만을 앞뒀다. 석사 1년반, 부스트캠프 6개월, 그리고 취준 기간만 1년 4개월만이다.지금까지 서류지원..

일기록 2024.08.02

[App] Dart 5. Classes

Classes 클래스는 OOP의 꽃이다. 모든 것이 클래스로 구현되어 있고, 앞으로 클래스로 코드를 작성해서 사용할 일이 많을 것이다. 이번 포스팅에서는 Dart의 클래스에 대해서 알아보자. 1) Default Class 간단한 클래스를 구성해보자. class Player { // property String name = 'kuuneeee'; // final을 붙이면 수정이 안됨 int xp = 1500; void sayHello() { print("Hi my name is $name"); // $this.name이라고 해도 작동은 함 -> 하지만 클래스 내에서 권고되지 않음 // 클래스 내에 겹치는 변수명(같은 이름의 name 변수)가 있으면 this.name이라고 사용할 수는 있음 // this는 현..

[App] Dart 4. Functions

Functions Dart의 함수는 javascript와 유사한 점이 많다. 함수 명 앞에 return 값의 타입에 따라 void, String 등을 명시하는 것이나 {}를 사용하는 등 공통점이 있다. 공통점을 제외하고 Dart만의 특징도 있으니 이번 포스팅에서는 Dart의 함수에 대해 정리해보자. 1) Defining a Functions Dart의 함수는 크게 두 종류로 구분할 수 있다. return 값이 없는 함수(void)와 return 값이 있는 함수(String, Int, ...)이다. 또, Dart는 필수적으로 main 함수를 가진다. art의 comiler는 .dart 파일을 실행할 때 자동적으로 main 함수를 찾아 실행하며, main 함수 밖에 작성한 다른 함수들을 실행하기 위해서는 m..

[App] Dart 3. Data Types

Data Types Dart는 다른 언어와 마찬가지로 List, Map(파이썬의 Dictionary), Set 등의 데이터 타입을 가진다. 다른 언어와의 차이점도 있으니 Dart의 데이터 타입에 대해 알아보자. 1) Basic Data Types 모든 데이터 타입은 Object이다. void main() { // 모든 데이터 타입은 class이므로 object String name ='kuuneeee'; bool alive = true; int age = 32; double money = 100.11; // int, double은 num 클래스에서 파생 -> 부모 클래스가 num // num은 정수, 소수 가능 num x = 12; num y = 1.1; } String, bool, int, double..

[App] Dart 2. Variables

Variables Dart에는 여러가지 변수(Variables) 타입이 있다. 이번 포스팅에서는 파이썬을 비롯해 다른 언어에서도 사용하는 String, Int(Integer), Double 등을 제외하고 Dart에서 사용하는 특이한 변수형태를 알아본다. 1) var var는 Dart에서 일반적으로 사용하는 변수 형태이다. void main() { var name1 = '껀이'; String name2 = '꺼니'; } 위와 같이 var name1으로 선언해서 사용한다. 이때 var로 지정한 name1은 입력값이 '껀이'라는 String이므로, name1은 String 타입으로 지정된다. 물론 name2처럼 명시적으로 String이라고 지정해도 된다. 결과는 같다. 또, 만약 var name1 = 1234..

[App] Dart 1. say "Hello World!"

1. 왜 갑자기 dart냐? 추천시스템이나 머신러닝 관련해서 이론 공부만 하다보니 매너리즘이 왔다. 아무리 취업을 위해서는 내 강점을 어필 할 수 있는 분야에 집중하는게 좋다지만, 프로젝트를 안하고 이론 공부만 하다보니 지루하고 집중도 안되는 날이 수두룩했다. 자꾸 떨어지는 면접에 시무룩해서 의욕이 없다가도, 왜 떨어지냐 싶은 빡침에 하루에도 몇번씩이나 현타가 왔다. 그렇다고 막상 AI 프로젝트를 하자니, 데이터도 수집도 어려운 추천시스템은 무리가 있고, 만들더라도 웹이나 앱으로 구현을 못하니 한계가 있어보였다.(모델만 잘 만들고 성능만 잘 나오면 그것도 좋을지도 모르지만..) 핫한 LLM을 만들거나 하는건 엄두도 못냈다. NLP는 개념정도만 알기에.. 그러다 취업이고 뭐고 "앱을 만들어보자"는 생각이 ..

[ML basic] GNN : Graph Neural Networks

1. Graph란? 그래프(Graph)란, 꼭지점(node)들과 그 노드를 잇는 선(간선, edge)들을 사용하여 데이터를 표현하는 자료구조이다. edge에 따라 다음과 같은 종류로 나뉘어진다. 방향 유무 directed / undirected 가중치 유무 weighted / unweighted [ Graph를 사용하는 이유 ] 관계, 상호작용과 같은 추상적인 개념을 다루기에 적합하다. 복잡한 문제를 더 간단한 표현으로 단순화할 수 있다. 소셜 네트워크, 바이러스 확산, 유저-아이템 상호작용 등을 모델링할 수 있다. Non-Euclidean Space의 표현 및 학습이 가능하다. 흔히 다루는 이미지, 텍스트, 정형데이터는 격자 형태의 데이터로 표현 가능하다. SNS 데이터, 분자(molecule) 데이터..

[논문] LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation

1. Background 기존의 CF( Collaborative Filtering )에는 다음과 같은 가정이 존재한다.비슷한 행동을 하는 유저들이 비슷한 아이템을 선호할 것이다.  이러한 가정에서 유저들이 갖는 성향을  잠재요인( Latent Factor )이라고 하며, 직접적으로 관찰되거나 측정되지 않는 요인을 말한다. CF는 유저와 아이템 각각의 임베딩 벡터를 생성하고, 내적을 통해 유저가 선호할만한 아이템의 스코어를 계산한다. 이에 더해 그래프에 기반한 추천모델인 NGCF( Neural Graph Collaborative Filtering )는 유저와 아이템 임베딩 벡터를 Embedding Propagation Layer를 통과시켜 업데이트함으로써 유저가 선호할만한 아이템의 스코어를 계산하여 추천한..

[ML basic] Bias & Variance

1. 정의 일반적으로, bias는 모델을 통해 얻은 예측값과 실제 정답과의 차이의 평균을 나타낸다. 즉, 예측값이 실제 정답값과 얼만큼 떨어져 있는지를 나타낸다. 만약 bias가 높다고 하면 그만큼 예측값과 정답값 간의 차이가 크다고 말할 수 있다. $$Bias[\hat{f}(x)]=E[\hat{f}(x)-f(x)]$$ variance는 다양한 데이터 셋에 대하여 예측값이 얼만큼 변화할 수 있는지에 대한 양(Quantity)의 개념이다. 이는 모델이 얼만큼 flexibility를 가지는 지에 대한 의미로도 사용되며, 분산의 본래 의미와 같이 얼만큼 예측값이 퍼져서 다양하게 출력될 수 있는 정도로 해석할 수 있다. $$Var[\hat{f}(x)]=E[(\hat{f}(x)-E[\hat{f}(x)]^{2})]..

[Linear Algebra] Part18. $rank(A)=rank(A^{T}A)$의 증명

1. $rank(A)=rank(AA^{T})=rank(A^{T}A)$의 증명 앞선 랭크의 정리에 대한 포스팅에서 $rank(A)=rank(A^T)$라는 것을 정리했다. 간단하게 다시 말하자면, $A$의 랭크, 즉 열공간의 독립적인 벡터 수는 $A^{T}$의 랭크와 같다는 것이다. 이를 rank theorem 라고 한다. 증명 주어진 행렬 $A$에 대해서, $rank(A)$를 $r$이라고 하고 $A$의 열벡터를 {v₁, v₂, ..., vᵣ}이라고 할때, {v₁, v₂, ..., vᵣ}는 $A$의 열공간을 형성한다. 이때 $A^{T}A$는 $A$의 열벡터들에 대한 내적의 형태로 구성된다. HTML 삽입 미리보기할 수 없는 소스 ​ 내적형태로 구성된 결과행렬에서 대각선 성분들은 $v_{r}^{T}v_{r}$..

728x90
반응형