전체 글

ML 엔지니어 컴공누나입니다:) wodbs9522@gmail.com
인공지능공부/그래프

[Stanford/CS224W] 2. tradition-ml(3) : 전통적인 그래프 레벨 피쳐와 그래프 커널

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 링크 레벨의 작업과 피쳐에 대해서 알아봤습니다. 이번 포스팅에서는 그래프 레벨의 피쳐와 그래프 커널에 대해 알아보겠습니다. Graph-level feature graph-level feature의 목적은 전체 그래프의 구조를 특징짓는 하나의 feature를 만드는 것입니다. 예를 들어 graph-level feature는 위의 A~H노드와 그 간선들을 표현할 수 있는 하나의 feature로 만드는 것이죠. 위의 작업을 하기 위해서는 kernel이라는 것을 이용합니다. kernel은 쌍으로 이루어진 그래프들의 유사도를 비교하기 위해 전통적인 ML에서 널리 쓰이는 방법입니다. 요약을 하자면 다음과 같습니다. 두 그래프의 커널이란 서로 다른 데이터 ..

인공지능공부/그래프

[Stanford/CS224W] 2. tradition-ml(2) : 전통적인 링크 레벨 작업과 피쳐

스탠포드 강의를 듣고 정리한 내용입니다. 지난 포스팅에서는 노드 레벨의 작업과 피쳐에 대해서 알아봤습니다. 이번 포스팅에서는 링크 레벨의 작업과 피쳐에 대해서 알아보겠습니다. Link-level 작업들 Link-level 작업은 두 노드 사이의 관계가 있는지 없는지 예측하는 작업입니다. 보시는 것처럼 노드들의 관계를 랭크로 나타내고 top-K개의 노드 쌍을 예측합니다. 여기에는 크게 2가지 작업이 있는데요. 첫 번째는 기존 그래프에서 랜덤하게 link를 지우고 그 부분을 예측하는 방법이며, 두 번째는 시간에 따라 지나는 관계성을 예측하는 것입니다. 이를 어떻게 적용해야 할까요? 일반적으로는 아래와 같은 프로세스로 작동합니다. 1. 각 노드 쌍(x, y)에 대한 스코어를 계산한다. - c(x, y)는 x와..

카테고리 없음

pyspark : AnalysisException: "Reference 'column' is ambiguous, could be: column, column.;"

원인 조인하는 테이블의 컬럼명이 중복되어 발생하는 문제입니다. 예를 들어 A 테이블 user_id, age B 테이블 user_id, gender 이렇게 두 테이블이 있을 때, concat = A.join(A, A.user_id == B.user_id, 'inner').select('user_id',"age","gender") 위와 같이 가져온다면, user_id가 A 테이블에도 있고, B테이블에도 있기 때문에 어느 것을 가져와야하는지 몰라서 나는 오류입니다. 해결 방법 import pyspark.sql.functions as F A = A.alias("a").join(B, A.user_id == B.user_id, 'inner').select(F.col('a.user_id').alias("user_id..

인공지능공부/그래프

[Stanford/CS224W] 2. tradition-ml(1) : 전통적인 노드 레벨 작업과 피쳐

스탠포드 강의를 듣고 정리한 내용입니다. 앞의 포스팅에서도 언급했지만, 그래프는 크게 3가지의 작업을 할 수 있습니다. 오늘은 위의 방법들 중 Nodel-level에 대해서 포스팅하도록 하겠습니다. Node-level 작업들 Node-level 작업은 네트워크가 주어지고, 각 노드들이 위와 같이 2개의 라벨을 가진다고 했을 때, 라벨이 달리지 않은 노드에 대해 어느 라벨을 가질지 예측하는 작업을 뜻합니다. 왼쪽에 있는 회색 노드들은 라벨이 붙어있지 않은 노드들인데, 이것을 ML로 학습시켜 라벨을 가지도록합니다. 마치 semi-supervised 학습처럼 보이죠. 위의 작업을 가능하게하는 node feature extraction에 대해서 알아보도록 하겠습니다. Node degree Node central..

인공지능공부/그래프

[Stanford/CS224W] 1. intro(3) : 그래프 표현의 선택

스탠포드 강의를 듣고 정리한 내용입니다. 그래프 표현 방법 앞의 포스팅에서는 그래프에는 어떤 종류가 있는지, 어떻게 활용될 수 있는지 알아보았습니다. 이번 포스팅에서는 그래프를 어떻게 표현하는지에 대해서 알아보도록 하겠습니다.  앞에서도 살짝 언급했듯이 그래프는 노드와 엣지로 구성되어있습니다. 이를 수학적 기호로 표현하면 아래와 같습니다. Objects : nodes, vertices → N Interactions : link, edges → E System : network, graph → G(N,E) Directed Graph와 Undirected Graph 그래프의 종류에는 크게 Directed Graph와 Undirected Graph가 있습니다. Directed Graph Directed Gr..

인공지능공부/그래프

[Stanford/CS224W] 1. intro(2) : 그래프 ML의 응용

스탠포드 강의를 듣고 정리한 내용입니다. 그래프 Task의 종류 앞의 포스팅에서 그래프 신경망을 다양한 방법으로 활용할 수 있다고 언급했습니다. 이번 포스팅에서는 그 방법들이 무엇인지 자세히 살펴보겠습니다. 큰 카테고리로 나누면 총 4개의 작업으로 요약할 수 있습니다. Node Level Node classification : 노드의 속성을 예측하는 작업 ex) 온라인 사용자나 아이템을 분류함 Edge Level Link prediction : 두 노드 사이에 누락된 관계는 없는지 예측 ex) 지식 그래프의 완성 Community(subgraph) Level Clustering : 커뮤니티를 형성하는지 탐지 ex) 사회 집단 탐지 Graph Level Graph classification : 다양한 그래..

인공지능공부/그래프

[Stanford/CS224W] 1. intro(1) : 그래프가 필요한 이유

스탠포드 강의를 듣고 정리한 내용입니다. 왜 그래프인가? 그래프는 일반적으로 엔티티들의 관계 또는 상호작용을 설명하고 분석하는 "언어"입니다. 따라서 위와 같이 데이터를 하나의 독립적인 포인트로 보기 보다는 이렇게 관계, 네트워크 측면에서 생각하자는 것이죠! 왜냐하면!!! 위와 같이 우리의 주변에는 정말 다양한 네트워크/그래프 형태의 데이터가 있기 때문이죠. 따라서 그래프 형태의 데이터를 잘 사용할 수 있다면, 위의 데이터들도 자동적으로 잘 활용될 수 있겠죠? 그럼 그래프의 종류에 대해서 잠깐 정리를 하고 가겠습니다. 그래프의 종류는 natural graph로 잘 알려진 networks와 representation인 graph으로 나뉩니다. Network(also known as Natural Graph..

카테고리 없음

행렬의 기본 연산

행렬이란? 행렬은 1개 이상의 수나 변수를 직사각형의 배열로 나열한 것을 뜻합니다. 여기서 가로줄은 행(row), 세로줄은 열(column)이라고 합니다. 위의 그림을 보시면 2개의 행과 2개의 열로 이루어진 2x2행렬이 있습니다. 여기서 각 인자를 읽을 때 행은 맨 위부터 1, 열은 맨 왼쪽부터 1으로 읽습니다. 따라서 각 인자는 오른쪽에 적혀있는 대로 읽습니다. 행렬의 용어들 주 대각선 : 행렬 왼쪽 위, 오른쪽 아래를 가르는 선 대각 성분 : 주 대각선에 걸치는 행과 열이 같은 성분 영행렬 : 모든 성분이 0인 행렬 전치 행렬 : 행과 열을 바꿔 주는 행렬 대칭 행렬 : 전치해도 같은 행렬 정사각 행렬 : 행과 열의 수가 같은 행렬 단위 행렬 : 모든 대각 성분이 1이고 나머지는 0인 정사각 행렬 ..

인공지능공부/인공지능기초수학

놈, 노름(Norm)

놈이란? 놈은 벡터의 크기를 나타내는 양입니다. 크기 또는 길이라고도 합니다. $$ \parallel v \parallel _p = ( \sum_{i=1}^n |v_i|^p )^ \frac{1}{p} $$ 수식은 위와 같습니다. 위의 p 값에 1이 들어가면 L1, 2가 들어가면 L2 라고 합니다. 인공지능에서는 주로 1,2가 사용됩니다. 1. L1 위의 수식에 1을 넣어보겠습니다. $$\parallel v \parallel _1 = \sum_{i=1}^n |v_i|$$ $$=|v_1|+|v_2|+|v_3|+...+|v_n|$$ 단순히 벡터 성분들을 더해주면 됩니다. 정말 쉽죠? 2. L2 위의 수식에 2를 넣어보겠습니다. $$\parallel v \parallel _2 = ( \sum_{i=1}^n |v..

인공지능공부/그래프

그래프의 정의

그래프란? 그래프는 간단히 말해서 점(node)과 선(edge)으로 이루어진 하나의 데이터 형태입니다. 기존 우리가 알던 배열로 이루어진 데이터와는 다른 형태입니다. 그래프는 두 점(node) 사이의 관계나 상호작용을 나타내는 데이터를 다룰때 주로 사용됩니다. 예를들어보겠습니다. 페이스북에 A, B, C 세 사람의 친밀도를 데이터로 나타내 봅시다. 만약 그래프 형태의 데이터를 사용하지 않는다면 우리는 이러한 형태의 데이터로 표현할 수 있을 것입니다. 이렇게 표현하면 모든 A, B, C를 조합해야하기 때문에, 각각 두번씩 중복되어 사용됩니다. 이번에는 그래프로 한번 표현해 보겠습니다. 모든 사람의 조합을 찾지 않고도 아주 간결하게 표현할 수 있습니다. 따라서 그래프는 노드 사이의 관계를 표현할 때 아주 효..

컴공누나
컴공누나의 지식 보관소