본문 바로가기

Category

(97)
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로 ..
백준 | 7576번 | 토마토 1) 문제 링크: https://www.acmicpc.net/problem/7576 2) 코드 from collections import deque m, n = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] result = 0 for i in range(n): for j in range(m): if matrix[i][j] == 1: queue.append([i, j]) def bfs(): while queue: x, y = queue.popleft() for i in range(4): nx, ny ..
[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 16 다이나믹 프로그래밍 문제 - Q34 병사 배치하기 1. 문제 2. 코드 n = int(input()) arr = list(map(int, input().split())) arr.reverse() dp = [1] * n for i in range(1, n) : for j in range(0, i) : if arr[j] < arr[i] : dp[i] = max(dp[i], dp[j] + 1) print(n - max(dp))
[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 16 다이나믹 프로그래밍 문제 - Q33 퇴사 1. 문제 2. 코드 n = int(input()) t, p = [0]*n, [0]*n for i in range(n): t[i], p[i] = map(int, input().split()) dp = [0]*25 for i in range(n): if dp[i] > dp[i+1]: dp[i+1] = dp[i] if dp[i+t[i]] < dp[i] + p[i]: dp[i+t[i]] = dp[i] + p[i] print(dp[n])
[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 16 다이나믹 프로그래밍 문제 - Q32 정수 삼각형 1. 문제 2. 코드 n = int(input()) data = [] for i in range(n): data_list = list(map(int, input().split())) for j in range (n, i + 1, -1): data_list.append(0) data.append(data_list) for i in range(n): for j in range(n): if i == 0: up = 0 else: up = data[i-1][j] if i == 0: left_up = 0 else: left_up = data[i-1][j-1] data[i][j] = data[i][j] + max(up, left_up) print(max(data[n-1]))
[ 이것이 취업을 위한 코딩 테스트다 with 파이썬 ] Chapter 16 다이나믹 프로그래밍 문제 - Q31 금광 1. 문제 2. 코드 def gold_func(n, m, data): d = [[0] * m for _ in range(n)] for i in range(n): d[i][0] = data[i][0] for j in range(1, m): for i in range(n): if i+1 = 0: temp = data[i][j] + d[i-1][j-1] d[i][j] = max(d[i][j], temp) temp = data[i][j] + d[i][j-1] d[i][j] = max(d[i][j], temp) max_list = [] for i in range(n): max_l..