본문 바로가기

AI

(23)
Federated Learning simulation with a single process 0. 연합학습이란 왼쪽 그림의 Cloud-based Machine Learning은 기존의 전통적인 머신러닝 학습 방식입니다. 이러한 학습 방식은 클라이언트가 가지고 있는 데이터를 중앙서버로 전달하여, 모델을 학습시킵니다. 이후 학습된 모델을 클라이언트에게 재배포하는 프로세스입니다. 하지만 연합학습은 기존의 전통적인 머신러닝 다르게 모델을 학습시킵니다. 연합학습은 클라이언트 내에서 유저의 데이터를 기반으로 학습한 후, 학습된 모델의 파라미터를 중앙 서버로 전달합니다. 전달된 파라미터를 기반으로 모델을 업데이트합니다. 이후, 업데이트된 모델은 클라이언트에게 재배포됩니다. 위는 연합학습의 FedAvg 알고리즘 pseudo code 입니다. 간단히 요약하면 다음과 같습니다. 1. 서버는 메인 모델을 준비합니다..
MLOps 개념과 필요성 : MLOps의 핵심 기능 CHAPTER 3 MLOps의 핵심 기능 MLOps의 다섯가지 핵심 기능인 개발, 배포, 모니터링, 반복, 거버넌스를 소개한다. 3.1 머신러닝 입문 머신러닝은 컴퓨터 알고리즘의 총아로서, 명시적으로 프로그래밍되기보다는 자동으로 경험으로부터 배우고 성능을 개선한다. 알고리즘을 활용하여 학습 데이터라고도 불리는 표본 데이터를 분석하고, 예측을 수행하는 소프트웨어 모델을 구축한다. 3.2 모델 개발 3.2.1 비즈니스 목표 수립 비즈니스 목표는 당연히 성능 목표, 기술 인프라 요구사항, 비용 제약을 포함한다. 이러한 요소들은 모두 KPI로 선정할 수 있고, 상용 환경에서 모델의 비즈니스 성능 측정을 위한 모니터링 대상이 될 수 있다. 목표 설정시 변화 관리도 포함하여, 머신러닝 모델이 어떻게 구축되어야 하는..
MLOps 개념과 필요성 : 왜 지금이고 도전과제는 무엇인가 CAHPTER 01 : 왜 지금이고 도전과제는 무엇인가 머신러닝 운영(Machine Learning Operations, MLOps은 조직과 비즈니스 리더들이 장기적 가치를 창출하고 데이터 사이언스, 머신러닝 및 AI를 주도할 때 리스크를 제거하는 데 도움이 되는 프로세스다. 1.1 MLOps와 도전 과제 정의하기 MLOps의 핵심은 머신러닝 모델 생애주기 관리의 표준화 및 간소화다. 머신러닝 모델 생애주기를 규모있게 관리하기 어려운 세 가지 주요 이유는 다음과 같다. 많은 의존성: 데이터는 지속적으로 변화하고, 비즈니스 요구사항도 변경된다. 동일한 언어를 사용하지 않은 이해 관계자들 소프트웨어 개발을 모르는 데이터 과학자 데이터는 항상 변화한다. 즉, 머신러닝 모델은 지속적으로 학습하고 새로운 입력에 ..
연합 학습 알고리즘 및 프로세스 이해 0. 들어가며 아래 강좌에서 4강 연합 학습 이해를 수강하고, 필요한 내용에 대해 정리한 글 입니다. https://www.laidd.org/course/view.php?id=62#section-0 LAIDD(Lectures on AI-driven Drug Discovery) www.laidd.org 1. 연합 학습 알고리즘 1-1) 강의 자료 1-2) 이해한 내용을 바탕으로 한 정리와 예시 2. 연합 학습 프로세스 2-1) 강의 자료 2-2) 이해한 내용 바탕으로 그려본 프로세스 끝
A Survey of Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions 들어가며 오늘 리뷰할 논문은 Recommender Systems 구현에서 사용되는 GNN 모델들을 정리해 놓은 논문입니다. 프로젝트 진행을 위해 필요한 부분만 살펴볼 예정입니다. 논문 링크는 아래를 참고해주세요 :) ! https://arxiv.org/abs/2109.12843 A Survey of Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions Recommender system is one of the most important information services on today's Internet. Recently, graph neural networks have become the new state..
Multi-Layer Perceptron, MLP 1. Perceptron 딥러닝에서는 여러 개의 입력을 받아 한 개의 출력을 내는 퍼셉트론 사용 이전 층의 정보를 사용해 새로운 층의 정보 생성 이때 입력 값에 weight 를 주며, bias를 통해 underfitting 또는 overfitting 을 방지 이전의 층에서 예측된 값은 activate function을 통해 값이 변환됨 2. Multi-Layer Perceptron, MLP 퍼셉트론으로 이루어진 층 여러 개를 순차적으로 붙여놓은 형태가 다층 퍼셉트론(MLP) 즉 여러 개의 퍼셉트론 뉴런을 여러 층으로 쌓은 다층신경망 구조 MLP는 정방향 인공신경망 (역전파 하지 않음) MLP의 구조는 입력층, 은닉층, 출력층의 전방향 신경망 위 MLP는 입력 4개, 은닉층의 유닛 5개, 출력 3개를 가지..
FM (Factorization Machine) 1. FM (Factorization Machine) 위의 그림은 MF에 대한 내용 MF는 user, item, rating의 data를 이용하는 추천 시스템 하지만 sparse한 환경이 존재하는 상황에서는 사용하지 못함 이러한 한계점을 해결하기 위해 FM 이 개발되었음 FM은 user, item, rating을 categorical 하게 분할 categorical feature는 one-hot 형태로 표현 따라서 sparse한 벡터는 일반적인 경우 2. Objective Function 다항회귀식으로 추천시스템의 목적 함수를 나타냄 첫번째 식은, 각 사용자에 weight를 부여한 식 두번째 식은, 사용자의 row 간의 weigh를 부여한 식 row 들간의 관계를 파악하기 위함 세번째 식은, b는 bia..
MF (Matrix Factorization) with SGD 더보기 추천 시스템 관련 논문 읽어 보다가 개념 정리가 잘 안되어 있다고 판단되서 글 작성해봅니당 :) !! 1. MF (Matrix Factorization) 선형대수학의 SVD(Singular Value Decomposition)를 응용한 방법론 하나의 행렬을 여러 행렬로 분할한다는 관점 기존의 분할된 행렬에서 핵심 정보만을 사용한다는 효율적인 개념 Full SVD에서 특이값이 높은 상위 k개 를 사용하여 Truncated SVD 구현 Full SVD의 도출값인 A는 Truncated SVD의 도출값과 유사할 것이라는 관점 MF는 Truncated SVD의 왼쪽 두 행렬을 user latent matrix로 사용 MF는 Truncated SVD의 오른쪽 한 행렬을 item latent matrix로 ..
[Practical Time Series Analysis (실전 시계열 분석)] Chapter 06 시계열의 통계 모델 Chapter06 시계열의 통계 모델 들어가며 6장에서 다루게 될 모델 자기회귀(AR) 모델, 이동평균(MA) 모델, 자기회귀누적이동평균(ARIMA) 모델 벡터자기회귀(VAR) 계층형 모델 6.1 선형회귀를 사용하지 않는 이유 선형회귀 분석은 독립 항등 분호 데이터가 있다는 것을 가정한다. 하지만 시계열 데이터는 해당되지 않는다. 6.2 시계열을 위해 개발된 통계 모델 6.2.1 자기회귀 모델 자기회귀(AR) 모델은 과거가 미래를 예측한다는 직관적인 사실에 의존한다. 6.2.2 이동평균 모델 이동평균 (MA) 모델은 각 시점의 데이터가 푀근의 과거 값에 대한 '오차' 항으로 구성된 함수로 표현된 과정에 의존한다. 이때 각 오차항은 서로 독립적이다. 6.2.3 자기회귀누적이동평균 모델 시계열이 AR 및 M..
[Practical Time Series Analysis (실전 시계열 분석)] Chapter 05 시간 데이터 저장 Chapter05 시간 데이터 저장 들어가며 시계열 스토리지 크기에 따른 성능 확장 방법에 대한 중요성 데이터 접근에 대한 무작위적인 방식 대 순차적 방식의 중요성 자동화 스트립트의 중요성 현재 가용 기술 SQL 데이터베이스 NoSQL 데이터베이스 단층 파일 형식 5.1 요구 사항 정의 5.1.1 실시간 데이터와 저장된 데이터 정보의 유실 없이 데이터를 줄일 수 있는 경우 천천히 변하는 변수 상태 변수를 저장한다면 값이 변한 데이터만 기록한다. 노이즈가 낀 높은 빈도의 데이터 높은 수준의 노이즈는 각 개별 측정의 가치를 떨어뜨린다. 사전에 데이터의 종합 집계를 고려해야 한다. 오래된 데이터 오래된 데이터일수록 활용가능성이 줄어든다. 5.2 데이터베이스 솔루션 5.2.1 SQL과 NoSQL 원래의 SQL ..
[Practical Time Series Analysis (실전 시계열 분석)] Chapter 04 시계열 데이터의 시뮬레이션 더보기 [목차] 4.1 시계열 시뮬레이션의 특별한점 - 4.1.1 시뮬레이션과 예측 4.2 코드로 보는 시뮬레이션 - 4.2.1 스스로 직접 만들어보기 - 4.2.2 스스로 실행하는 시뮬레이션 세계 구축 - 4.2.3 물리적인 시뮬레이션 4.3 시뮬레이션에 대한 마지막 조언 - 4.3.1 통계적인 시뮬레이션 - 4.3.2 딥러닝 시뮬레이션 4.4 보충 자료 Chapter 04 시계열 데이터의 시뮬레이션 들어가며 1) 이 장은 크게 세 부분으로 나뉜다. 첫째, 시계열 데이터 시뮬레이션과 다른 종류의 데이터 시뮬레이션을 비교한다. 그러면서 시간의 흐름을 처리할 때 새로운 분야에서 특별히 고려해야할 사항에 집중한다. 둘째, 실제 코드 기반으로 시뮬레이션의 몇 가지 예를 살펴본다. 셋째, 시계열 시뮬레이션의 동..
[Practical Time Series Analysis (실전 시계열 분석)] Chapter 03 시계열의 탐색적 자료 분석 Chapter03 시계열의 탐색적 자료 분석¶ 경로 지정¶ In [1]: from google.colab import drive drive.mount('/content/drive') Mounted at /content/drive In [2]: %cd /content/drive/MyDrive/KHUDA/KHUDA_Chap03/ /content/drive/MyDrive/KHUDA/KHUDA_Chap03 필요한 라이브러리 불러오기¶ In [3]: import rpy2 %load_ext rpy2.ipython import numpy as np import pandas as pd import matplotlib.pyplot as plt import statsmodels.graphics.tsaplots as sgt..