전체 글 89

[하나라도 제대로] 구현(1)

서론 구현(Implementation) 문제는 머릿속에 있는 알고리즘을 소스코드로 바꾸는 문제를 일컫는말로 주로 시뮬레이션과 완전 탐색에 초점을 맞춘 문제유형이다. 일반적으로는 머릿속으로 떠올리는 것을 쉽지만 소스코드로 옮기기 어려운 문제를 지칭한다. 때로는 적정한 라이브러리의 능수능란한사용법을 요하는 문제도 존재한다. ex) 모든 순열, 모든 조합을 찾을때 python라이브러리를 활용하면 매우 간결하게 작성할 수 있다. 일반적으로 알고리즘 문제에서 2차원 공간은 행렬(Matrix)의 의미로 사용된다.위처럼 행렬을 이용해서 문제를 푸는일이 많다. 시뮬레이션 및 완전탐색 문제에서는 2차원 공간에서의 방향벡터를 자주 활용합니다  연습문제 코드 def checkTF(N): if N % 10 == 3 or N..

[하나라도 제대로] 그리디알고리즘(3)

1. 서론 강의링크: https://youtu.be/2zjoKjt97vQ 2. 본론 그리디 알고리즘은 '현재 상황에서 당장 좋은 것만' 고르는 방법을 의미한다. 코딩 테스트 문제에 기준에 따라 가장 좋은 것을 선택하는 알고리즘이므로 문제를 잘읽고 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 잡고 문제 풀이를 진행하자. 1) 예제문제: 모험가 길드 여기서 나는 함수형태로 만듬으로, [] 리스트 형태로 1개 받는걸로 하겠다. (1) 내코드 A. 오름차순으로 정렬 B. 모험가 수보다 cur가 크면 stop import heapq def heapsort(dataset): h = [] result = [] for value in dataset: heapq.heappush(h, value) for..

(1) What is the MLOps?

MLOps는 DevOps 용어에서 파생되어 나온단어다. 그러므로 DevOps를 우선적으로 대해서 알아보도록하자. What is the DevOps? DevOps는 제품 개발 프로세스에서 유래된 단어로 Development + Operations의 합성어이다. 개발(Dev)부서는 제품을 개발하고 마켓에 론칭하는 역할을 하고, 운영(Ops)부서는 제품을 운영하면서 시장의 트랜드, 고객 니즈를 대처한다. 이때, 개발(Dev)부서는 새로운 기능이나 유지보수에 대한 개발만 할 뿐 운영(Ops)부서만큼 고객의 니즈를 고려하여 개발하지 않는다. 운영(Ops)부서 또한 개발(Dev)부서만큼 개발시 발생하는 애로사항등 알기 어렵다 그리하여 애로사항을 해결하기 위해 개발(Dev), 운영(Ops)부서 아우르는 개념을 만들자..

AI/MLOps 2022.01.07

[하나라도 제대로] 그리디알고리즘(2)

1. 서론 강의링크: https://youtu.be/2zjoKjt97vQ 2. 본론 그리디 알고리즘은 '현재 상황에서 당장 좋은 것만' 고르는 방법을 의미한다. 코딩 테스트 문제에 기준에 따라 가장 좋은 것을 선택하는 알고리즘이므로 문제를 잘읽고 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 잡고 문제 풀이를 진행하자. 1) 예제문제: 곱하기 혹은 더하기 (1) 내코드 A. 0 혹은 1이면 곱셈보다는 덧셈이 유리 B. 문자열이 1개 밖에 없으면 자기 자신 리턴 def multiOrPlus(s): tmp = list(map(lambda x: int(x), list(str(s)))) result = tmp[0] if len(tmp) == 1: return result else: for cur..

[하나라도 제대로] 그리디알고리즘(1)

1. 서론 강의링크: https://youtu.be/2zjoKjt97vQ 그리디 알고리즘, 탐욕 알고리즘 이라고 불리는 이것은 추후 배우게될 완전 탐색이나 dfs,bfs 등 역량을 키우는데 중요한 경험이 될것이다. 2. 본론 그리디 알고리즘은 '현재 상황에서 당장 좋은 것만' 고르는 방법을 의미한다. 코딩 테스트 문제에 기준에 따라 가장 좋은 것을 선택하는 알고리즘이므로 문제를 잘읽고 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 기준을 잡고 문제 풀이를 진행하자. 1) 예제문제: 1이 될 때 까지 어떠한 수 N이 1이 될 때까지 2가지 연산을 반복적으로 수행할 수 있다. N에서 1을 뺀다 N을 K로 나눈다.내 코드 (1) 내코드 A. N이 1이 되면 반복을 멈추라고 함 B. 처음에 K로 나눠지..

[하나라도 제대로] 코딩테스트를 위한 PS 프로젝트

1. 서론 하나라도 제대로 풀어보자. 퇴근이후에 코딩테스트를 풀기란 체력적으로 가용할 수 있는 머리가 부족하다. 이럴땐, 목표를 좀 낮추고 포기하지 않고 하나씩 서서히 해나가야 한다. 꾸준히 하자. 2. 본론 1) 공부자료 나동빈 저자의 이것이 코딩 테스트다 + 유튜브 강의 류호석님의 패스트 캠퍼스 강의자료 + 문제 모두 공인된 분들이시고 SW 취업 관련 오픈채팅방에서도 자주 거론되는 자료들이다. 2) 공부계획 최소 1문제는 문제를 풀자. 문제를 풀고나서 다른 모범답안에는 무엇이 있는지 찾아보고 내꺼 만들것. 진행사항을 꾸준히 이 게시글에 남길것. (1) 커리큘럼 동빈님 그리디&구현 동빈님 DFS&BFS + 호석님 그래프 탐색 동빈님 정렬 + 호석님 정렬 동빈님 이진 탐색 + 호석님 이분 탐색 동빈님 D..

0. MLOps 공부 자료

1. 글 (1) [coffeewhale 블로그] Kubernetes w/ MLOps #1-4 (2) 머신러닝 디자인 패턴 (3) 머신러닝 파이프라인 종류 (4) 모두의 MLOps with Kubernetes and Kubeflow (5) Xbrain Blog Post What is MLOps? -> https://url.kr/m2wr4b AI를 활용한 제품을 위한 데이터 전략 -> https://url.kr/jzmw47 MLOps를 하면 성과지표, 모니터링을 어떻게 할까? -> https://url.kr/q7m1cf Airflow를 활용한 MLOps 구성방법 https://url.kr/ktshxz AI 서비스에서 데이터 엔지니어의 역할 및 중요성 -> https://url.kr/276fm3 2. 영상 &..

AI/MLOps 2022.01.03

3. Computer Vision with CNN (Fashion-MNIST)

1. CNN의 탄생 배경 과거에는 DNN(Deep Neural Net)을 이용해서 손글씨, 옷 이미지 데이터를 예측하는 일을 했다. 여기서 2가지 문제가 발생하게 된다. 1) 학습 효율성, 속도 문제이미지가 28x28로 엄청 작아도 DNN를 사용하고자 한다면, 입력노드를 2352개 써야한다. 이는 지나치게 많은 입력 노드가 발생하여 효율성이 떨어진다. 2) Overfitting 문제 가령 흰배경에 강아지가 있는 사진만을 학습시킨 모델에 테스트 이미지로 검은 배경의 강아지가 들어왔다고 해보자. DNN학습된 이미지는 이게 강아지임을 분류 하기란 쉽지않다. 그리고 오버피팅을 야기할 수 있다. 이를 해결하고자 1998년 Yann LeCun이 더 잘 작동시키는 아이디어로 논문을 썼는데 그것이 컨볼루션 네트워크(C..

AI/Deep learning 2022.01.02

2. Computer Vision with Deep Neural Networks

서론 기존 프로그래밍은 문제가 있으면 답을 방식이였다. 그러나, 딥러닝은 문제를 풀기위해 데이터들의 '패턴'을 찾아내고 '식'을 만들어 답을 찾는 방식인 점에서 딥러닝을 이용한 문제해결은 매우 혁신적인것 같다. Computer Vision쪽에서는 딥러닝이 어떠한식으로 쓰일까? 사람이 어떤 옷을 보았을때 뇌에서 받아들이는 과정을 생각해보자. '이건 흰셔츠고~ 검은 바지네~' 와 같이 생각할 수 있다. 반면, 이를 어떻게 프로그래밍 할까? 만약, '옷'을 본적도 없는 외계인이 지구에 왔을때, '신발'에 대해서 어떻게 설명할까? 매우 어렵지만, 불가능하지 않다는 것을 알 수 있다. 이를 해결하는 방법 중 하나는, 컴퓨터에게 신발, 셔츠, 핸드백, 코트를 학습시키는것이다. 대표적인 예시 데이터셋으로 Fashio..

AI/Deep learning 2022.01.01

1. The 'Hello World' of Deep Neural Networks

서론 Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning 에서 얻은 지식을 토대로 간단하게 딥러닝의 기본적인 개념들을 살펴보고 넘어가보자. 본론 일반적으로 프로그래밍은 어떠한 룰이 주어지고, 여기에 데이터를 넣었을때 결과값이 나오는 형태이다. 반면, 머신러닝은 이와는 다르게 어떠한 데이터를 주고 이에 대한 결과값은 무엇인지 데이터를 줘서 이것의 룰이 무엇인지 도출한다. 가령, y= 2x - 1 라는 방정식이 있다고 해보자. 일반적인 프로그래밍 방식은 def twox(n): return 2*n - 1 와 같이 함수를 선언하고 여기에 n값을 넣어 결과값을 얻는 방식이다. 이제 머신러닝 방식을 알아..

AI/Deep learning 2022.01.01