Machine Learning 37

GPT로 MockAPI를 만들어보자

들어가며 최근 Backen-GPT와 관련된 글(https://beoks.tistory.com/91)을 올렸습니다. 동시에 GPT는 현재 Backend에 적용하기에는 다양한 한계가 존재한다고 평가했는데, 그래도 응용할 수 있는 방법이 없을까 고민하다 MockAPI에는 적용할만하다고 생각해 만들어보게 되었습니다. 디자인 기존 MockAPI는 주로 모바일이나 프론트엔드 개발에서 아직 벡엔드가 구현되지 않았을 때 API와 관련된 프론트 기능을 구현할 때 사용되었습니다. 하지만 스캐폴딩 코드에 해당하기에 MockAPI를 구현하는데 시간을 많이 쓰는 건 올바르지 않습니다. 따라서 목적과 초기 데이터베이스 상태를 설정하면 바로 원하는 API를 구현할 수 있도록 최대한 간단한 디자인을 목표로 삼아 아래와 같은 인터페이..

Machine Learning 2023.02.01

Backend-GPT를 알아보자

들어가며 최근 GeeksNews에서 GPT를 이용한 벡엔드 서버에 관한 기사를 봤습니다(https://news.hada.io/topic?id=8341). 벡엔드 개발자로서는 굉장히 흥미로운 주제이기 때문에 어떻게 구현되어있는지 알아보았습니다. 이 포스트에서는 그 결과와 한계에 대해서 설명해보고자 합니다. Backend-GPT란? 기존 벡엔드 서버는 코드를 이용해서 구현했습니다. Backend-GPT는 코드를 이용한 구현은 버그, 리뷰 필요 그리고 우리가 원하는 비즈니스 로직이 아닌 우리가 말하는 것만 수행한다고 비판하는 것에서 시작합니다. 비즈니스 로직을 처리하기 위해선 인간의 지능이 적절한 형태라고 말합니다. 이 문제를 해결하기 위해 LLM(Large-Language Model, ex.GPT) 을 벡엔..

Machine Learning 2023.01.30

[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_3. 안드로이드에 Tensorflow Lite 모델 삽입

들어가며 지난 시간까지 데이터를 수집하고 Tensorflow Lite 모델을 만드는 과정까지 진행해보았다. 이번에는 이 모델 파일을 Android에 삽입해서 실제 구동까지 진행해보도록 하겠다. TFlite 모델에 메타데이터 추가하기 이 부분 때문에 필자는 몇 시간동안 삽질을 했다. 이전 장에서 만든 .tflite 파일을 그대로 안드로이드에 사용하게 되면 에러가 발생한다:(. 구글링을 하고 stack overflow에 업로드하는 등 여러 노력을 통해서 솔루션을 찾아냈다. 에러의 내용은 tflite모델에 NormalizationOptions이 추가되어 있어야 한다는 뜻이었다. 이는 메타 데이터의 일종인데 이를 삽입하기 위해선 추가적인 작업이 필요했다. 위 코드를 사용하면 필요한 메타 데이터를 추가 할 수 있..

Machine Learning 2021.03.17

[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_2. 모델 학습

들어가며 지난 시간에는 roboflow를 사용해서 데이터를 업로드하여 처리하는 방법에 대해서 알아보았다. 이번에는 데이터와 Tensorflow 프레임워크를 사용해서 모델을 만들어보도록 하겠다. 추가적으로 컨버터를 사용해서 Tensorflow Lite 모델까지 변환하는 방법에 대해서 알아보도록 하겠다. (이 장에서는 필수적으로 수정해야 할 부분에 대해서만 언급하겠다. 코드에 대해서 자세히 알고 싶다면 Colab내부의 주석을 참고하도록 하자) 데이터 다운로드 colab.research.google.com/drive/1aIobwtqWggRbLbe606_WzVGtFiWZT9tr?usp=sharing Roboflow-TFLite-Object-Detection_Bicycle_Helmet.ipynb Colaborat..

Machine Learning 2021.03.17

[Tensorflow Lite] - 객체 탐지(Object Detection Model)만들기_1. 데이터 처리

들어가며 최근에 어떤 프로젝트를 진행하게 되면서 안전모를 착용했는지 확인하기 위한 모바일용 머신러닝 모델이 필요하게 되었다. 3일이라는 짧은 시간 안에 프로토타입을 만들게 되었는데, 진행하면서 알게 된 에러 사항에 대해서 공유하기 위해서 이 글을 작성하니 모바일용 객체 탐지 모델을 만드는 사람들이 참고해서 쉽게 사용했으면 좋겠다. 혹시 결과물이 바로 보고 싶은 사람은 아래의 링크를 참고하란다. github.com/BEOKS/Bicycle-Helmet-Wearing-Detection BEOKS/Bicycle-Helmet-Wearing-Detection Tensorflow lite model that detects bicycle helmet wearing and Android demo application ..

Machine Learning 2021.03.17

인공 신경망 with Keras - 3. 함수형 API로 복잡한 모델 만들기

들어가며 지난 시간까지 케라스의 Sequential API를 이용해서 간단한 선형 신경망을 만들어 회귀와 분류를 진행했습니다. 만약 여러개의 입력, 출력층을 만들고 싶거나 좀 더 복잡한 신경망을 만들고 싶다면 어떻게 해야할까요? 이번에는 함수형 API를 사용해서 이 문제를 해결해보겠습니다. 목차 1. 함수형 API란? 2. Wide & Deep 신경망 3. 여러개의 입력,출력층 1. 함수형 API란? 함수형 API는 말 그대로 코드에서 함수처럼 신경망 층을 다루는 API입니다. input_B = keras.layers.Input(shape=[6], name="deep_input") hidden1 = keras.layers.Dense(30, activation="relu")(input_B) 두 번째 줄을 ..

인공 신경망 with Keras -2. 케라스로 Regression MLP(회귀 다층퍼셉트론) 구현하기

들어가며 지난 시간에는 케라스로 간단한 이미지 분류기 모델을 구축,훈련,평가 그리고 결과를 시각화하는 방법에 대해서 알아보았습니다. 이번 시간에는 케라스를 이용해서 회귀 다층퍼셉트론 모델을 만들어보겠습니다. 목차 1. Regression MLP 구현 방안 2. Sequential API를 이용해서 모델 구현 3. 시각화 1. Regression MLP 구현 방안 Regression MLP를 구현하는 방법은 이전 글에서 이미지 분류기 모델을 만들었다면 매우 간단히 해결할 수 있습니다. 회귀는 수치를 예상하는 것이므로 훈련전에 스케일링을 하고 모델의 출력층에서 활성화함수를 사용하지 않으면 쉽게 구현할 수 있습니다. Sequentail API를 이용해서 직접구현해보겠습니다. (Sequential API를 모른..

인공 신경망 with Keras -1. 케라스로 MLP(다층 퍼셉트론) 구현하기

들어가며 지난 글까지 인공 신경망과 학습 모델들에 대해서 알아보고 이를 사이킷런으로 구현해 보았습니다. 이번에는 google 의 tensorflow에서 지원하는 keras라이브러리를 사용해서 간편하게 신경망을 구현, 학습, 그리고 평가하는 방법에 대해서 알아보겠습니다. 목차 1. 텐서플로2 설치 2. Sequential API로 이미지 분류기 구현하기 1. 데이터 다운로드 2. Sequential Model 구축 3. 모델 알아보기 4. 모델 컴파일하기 5.모델 학습하기 6. 학습 시각화하기 7. 테스트 데이터로 평가하기 8. 예측하기 Tensorflow 2.0 설치하기 tensorflow 2.0을 설치하는 환경이 여러 가지가 있으므로 이는 tensorflow.org에 게재된 공식문서를 참조하는 것이 좋..

머신러닝 모델 - 5. 소프트맥스 회귀(Softmax Regression)

들어가며 지난 글에서는 로지스틱 함수를 사용하여 두 개의 클래스를 구별하는 이진 분류기에 대해서 다루어보았습니다. 이번에는 여러개의 클래스를 한 번에 분류할 수 있는 소프트맥스 회귀에 대해서 알아보도록 하겠습니다. 목차 1. 소프트맥스의 정의 2. 비용함수(크로스 엔트로피 비용 함수) 3. 코드 구현 1. 소프트맥스의 정의 소프트맥스 회귀 또는 다항 로지시틱 회귀는 소프트 맥스 함수(softmax function)을 사용하여 각 클래스일 확률을 추정하여 이 중 가장 높은 확률을 가진 클래스를 선택하는 것입니다. 이를 쉽게 알아보겠습니다. 우선 각 클래스는 자신만의 파라미터 벡터가 존재하며 새로운 샘플이 입력되었을 경우 각 클래스의 벡터와 샘플의 곱을 계산하여 이 중 가장 큰값을 선택하는 방식입니다. 따라..

Machine Learning 2020.04.23

머신러닝 모델 - 4. 로지스틱 회귀 (Logistic Regression)

들어가며 지난 시간에는 선형회귀에 이어 다항회귀에 대해서 알아보았습니다. 이번에는 회귀를 통해서 분류(Clustering)을 진행할 수 있는 알고리즘인 Logistic Regression 에 대해서 알아보도록 하겠습니다. 목차 1. Logistic Regression 1.1 확률추정 1.2 훈련과 비용함수 1.3 결정경계 1. Logistic Regression 로지스틱 회귀란 기본적으로 회귀 알고리즘을 사용하지만 마지막 결과값에서 로지스틱 함수를 통해서 확률을 계산하고 이를 토대로 분류를 진행하는 알고리즘입니다. 위 수식을 보면 파라미터와 샘플의 곱까지는 기존의 회귀와 동일하지만 이를 감싸는 새로운 함수를 볼 수 있습니다. 이것이 바로 로지스틱 함수입니다. 로지스틱 함수는 변수를 입력할 경우 이를 0~..

Machine Learning 2020.04.20