KR20220026647A - System for sharing or selling machine learning model and operating method thereof - Google Patents
System for sharing or selling machine learning model and operating method thereof Download PDFInfo
- Publication number
- KR20220026647A KR20220026647A KR1020200107159A KR20200107159A KR20220026647A KR 20220026647 A KR20220026647 A KR 20220026647A KR 1020200107159 A KR1020200107159 A KR 1020200107159A KR 20200107159 A KR20200107159 A KR 20200107159A KR 20220026647 A KR20220026647 A KR 20220026647A
- Authority
- KR
- South Korea
- Prior art keywords
- machine learning
- learning model
- server
- information
- watermarking
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0613—Third-party assisted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0623—Item investigation
Abstract
Description
본 개시는 기계학습모델의 공유 또는 판매를 위한 시스템 및 시스템의 동작 방법에 대한 것이다. The present disclosure relates to a system for sharing or selling a machine learning model and an operating method of the system.
최근 인공지능 딥러닝에 대한 사회적 수요가 크게 증가하고 있다. 기술이 빠르게 진보함에 따라 많은 기업, 기관 또는 개인이 딥러닝 기술에 관심을 가지고 각자의 응용분야에 적용하려는 시도가 점차 늘어나고 있다. 이렇게 사회적 수요가 폭발함에도 불구하고, 데이터 수집 및 데이터 정제를 포함한 기술에 난이도가 있어서, 기업, 기관 또는 개인은 딥러닝 기술을 적용하는데 어려움을 겪고 있다. 이러한 어려움은 자체 연구진을 꾸릴 수 없는 중소형 기업 및 기관에서 더 크게 문제되고 있다.Recently, the social demand for artificial intelligence deep learning has increased significantly. As technology advances rapidly, many companies, institutions, or individuals are interested in deep learning technology and are increasingly trying to apply it to their respective fields of application. Despite this explosion of social demand, there are difficulties in technology including data collection and data purification, so companies, institutions, or individuals have difficulties in applying deep learning technology. These difficulties are more problematic for small and medium-sized enterprises and institutions that cannot have their own research team.
기업, 기관 또는 개인은 거대 글로벌 기업에서 개발된, 누구나 사용하기 편한 다양한 소프트웨어 패키지를 활용하여 딥러닝 기술을 사용할 수 있다. 하지만, 특화된 분야에 맞는 적합한 모델을 개발하는 것은 딥러닝에 대한 깊은 이해를 필요로 하므로 많은 어려움이 발생할 수 있다. Companies, institutions, or individuals can use deep learning technology by utilizing a variety of easy-to-use software packages developed by large global companies. However, developing an appropriate model for a specialized field requires a deep understanding of deep learning, so many difficulties may arise.
일차적으로 수백에서 수백만 건의 데이터에 대한 획득 및 정제 그리고 레이블링 등의 작업은 노동-집약적인 작업으로 많은 시간이 소요된다. 소규모 회사에서 소수의 인원으로 처리할 수 있는 문제가 아니다. 또한, 이차적으로 정제된 데이터에 근거하여 적합한 딥러닝 모델을 개발하고 학습하는 것은 많은 컴퓨팅 지원이 요구되며 최신의 컴퓨팅 장치를 사용한다고 하더라도 수일에서 수십일이 걸리는 매우 시간 소모적인 작업이라 할 수 있다. 최근 활용도가 높아지고 있는 클라우드 서비스를 사용한다고 하더라도 최적의 모델 탐색을 위해서는 많은 양의 클라우드 사용시간과 비용이 필요하게 된다. 이러한 노동집약적이면서도 높은 시간과 비용은 중소형 기업이 인공지능을 도입하는 것을 방해하는 매우 큰 요소라고 할 수 있다.First, the acquisition, purification, and labeling of hundreds to millions of data is labor-intensive and time-consuming. It's not something a small company can handle with a handful of people. In addition, developing and training a suitable deep learning model based on secondarily refined data requires a lot of computing support and is a very time-consuming task that takes several to tens of days even with the latest computing devices. Even if you use a cloud service, which has recently been increasingly used, a large amount of cloud usage time and cost is required to search for an optimal model. This labor-intensive, high time and cost is a very big factor that prevents small and medium-sized enterprises from adopting artificial intelligence.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계, 공급자 단말기로부터 기계학습모델, 기계학습모델에 대한 테스트 코드, 및 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계, 테스트 데이터 세트를 테스트 코드에 적용하여 테스트 결과를 획득하는 단계, 테스트 결과에 기초하여 기계학습모델을 승인하는 단계, 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계, 및 기계학습모델과 관련된 등록 정보, 기계학습모델, 테스트 코드, 테스트 데이터 세트, 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The operating method of a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving registration information related to a machine learning model from a supplier terminal, a machine learning model from a supplier terminal, a test code for the machine learning model, and machine learning Receiving a test data set for the model, applying the test data set to test code to obtain test results, approving the machine learning model based on the test results, watermarking when the machine learning model is approved Obtaining watermarking result information by performing, and storing registration information related to the machine learning model, machine learning model, test code, test data set, and watermarking result information in a database.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법의 워터마킹 결과정보를 획득하는 단계는 워터마크 이미지 및 워터마크 이미지에 대한 레이블을 획득하는 단계, 기계학습모델은 워터마크 이미지 및 워터마크 이미지에 대한 레이블에 기초하여 추가적으로 학습되는 단계, 및 기계학습모델에 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계를 포함한다.The step of obtaining the watermarking result information of the operating method of the server for sharing or selling the machine learning model of the present disclosure is the step of obtaining a watermark image and a label for the watermark image, the machine learning model is a watermark image and a water A step of additionally learning based on the label for the mark image, and the step of applying the watermark image to a machine learning model to obtain watermarking result information.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기의 요청에 따라 기계학습모델과 관련된 등록 정보를 수요자 단말기로 송신하는 단계, 수요자 단말기로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계, 선택된 기계학습모델을 수요자 단말기로 송신하는 단계, 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보를 수요자 단말기로 송신하는 단계, 및 수요자 단말기에서 선택된 기계학습모델에 대한 워터마크 이미지를 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성하고, 선택된 기계학습모델에 대한 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 수요자 단말기로부터 수신하는 단계를 포함한다.The method of operation of a server for sharing or selling a machine learning model of the present disclosure includes transmitting registration information related to the machine learning model to the consumer's terminal at the request of the consumer's terminal, and identifying information about the machine learning model selected from the consumer's terminal. receiving, transmitting the selected machine learning model to the consumer terminal, transmitting a watermark image for the selected machine learning model and watermarking result information to the consumer terminal, and a watermark for the machine learning model selected in the consumer terminal and generating watermarking confirmation information by applying the image to the selected machine learning model, and receiving information about whether the watermarking result information and the watermarking confirmation information for the selected machine learning model match from the consumer terminal.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계, 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 수요자 단말기에 데이터 세트를 요청하는 단계, 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트를 포함하는 데이터 세트를 수신하는 단계, 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계, 및 튜닝된 기계학습모델에 튜닝용 테스트 데이터 세트를 적용하여 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving tuning request information for a selected machine learning model from a consumer terminal, information on whether tuning is possible for the selected machine learning model is selected machine learning When it indicates that the model is tunable, requesting a data set from the consumer terminal, receiving a data set including a training data set and a test data set for tuning from the consumer terminal, based on the selected machine learning model on the training data set to generate a tuned machine learning model by re-learning, and obtaining accuracy for the tuned machine learning model by applying a test data set for tuning to the tuned machine learning model.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계 및 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터 세트, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The operating method of a server for sharing or selling a machine learning model of the present disclosure includes the steps of performing watermarking on a tuned machine learning model to obtain tuned watermarking result information, and registration information related to the tuned machine learning model; Storing the tuned machine learning model, the tuned test code, the test data set for tuning, and the tuned watermarking result information in the database.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 레이블링 요청 정보에 대응하여 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes receiving a plurality of analysis target data and labeling request information from a consumer terminal, and a labeling project for a plurality of analysis target data in response to the labeling request information generating, and receiving a plurality of pieces of label information respectively corresponding to a plurality of analysis target data from terminals of at least one project participant.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 수요자 단말기로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계, 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 수요자 단말기에 데이터 세트를 요청하는 단계, 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계, 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계, 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계, 및 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터 세트, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving tuning request information for a selected machine learning model from a consumer terminal, information on whether tuning is possible for the selected machine learning model is selected machine learning When it indicates that the model is tunable, requesting a data set from a consumer terminal, receiving a data set including at least one of a training data set and a test data set for tuning from the consumer terminal, training data for the selected machine learning model Generating a tuned machine learning model by re-learning based on the set, performing watermarking on the tuned machine learning model to obtain tuned watermarking result information, and registration information related to the tuned machine learning model , and storing the tuned machine learning model, the tuned test code, the test data set for tuning, and the tuned watermarking result information in the database.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes receiving a plurality of analysis target data and labeling request information from the consumer terminal, and corresponding to the labeling request information, the plurality of analysis target data. Generating a labeling project, and receiving a plurality of pieces of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법은 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계, 수요자 단말기로부터 상기 기계학습모델에 사용하기 위한 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계, 상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계, 및 적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함한다.The method of operating a server for sharing or selling a machine learning model of the present disclosure includes the steps of receiving registration information related to a machine learning model from a supplier terminal, the machine learning model from the supplier terminal, a test code for the machine learning model, and receiving a test data set for the machine learning model, applying the test data set to the test code to obtain a test result, approving the machine learning model based on the test result, consumer terminal Receiving a plurality of analysis target data and labeling request information for use in the machine learning model from, generating a labeling project for the plurality of analysis target data in response to the labeling request information, and at least one project and receiving a plurality of pieces of label information respectively corresponding to the plurality of analysis target data from the participant's terminal.
본 개시의 기계학습모델을 공유 또는 판매하기 위한 서버는 프로세서 및 메모리를 포함하고,상기 프로세서는 상기 메모리에 저장된 명령어에 기초하여, 공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하고, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하고, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하고, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하고, 상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하고, 상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장한다.A server for sharing or selling a machine learning model of the present disclosure includes a processor and a memory, wherein the processor receives registration information related to the machine learning model from a provider terminal based on an instruction stored in the memory, and the provider terminal receive the machine learning model, the test code for the machine learning model, and the test data set for the machine learning model from Approving the machine learning model based on, when the machine learning model is approved, performing watermarking to obtain watermarking result information, registration information related to the machine learning model, the machine learning model, the test code, The test data set and the watermarking result information are stored in a database.
또한, 상술한 바와 같은 기계학습모델을 공유 또는 판매하기 위한 서버의 동작 방법을 구현하기 위한 프로그램은 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.In addition, a program for implementing the operating method of the server for sharing or selling the machine learning model as described above may be recorded in a computer-readable recording medium.
도 1은 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)의 블록도이다.
도 2는 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)를 나타낸 도면이다.
도 3 은 본 개시의 일 실시예에 따른 기계학습모델 공유 또는 판매 시스템을 개괄적으로 나타내는 도면이다.
도 4는 본 개시의 일 실시예에 따라 기계학습모델을 공유하기 위한 서버의 동작 방법을 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 6는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 7은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 8은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 10은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.
도 11은 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.
도 12은 본 개시의 일 실시예에 따라 참여자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.1 is a block diagram of a provider terminal 310 or a
2 is a diagram illustrating a provider terminal 310 or a
3 is a diagram schematically illustrating a machine learning model sharing or sales system according to an embodiment of the present disclosure.
4 is a flowchart illustrating an operation method of a server for sharing a machine learning model according to an embodiment of the present disclosure.
5 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
6 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
7 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
8 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
10 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
11 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
12 is a diagram illustrating a screen that may be displayed in a participant terminal according to an embodiment of the present disclosure.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시는 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 개시가 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the embodiments described below in conjunction with the accompanying drawings. However, the present disclosure is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the present disclosure to be complete, and those of ordinary skill in the art to which the present disclosure pertains. It is only provided to fully inform the person of the scope of the invention.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail.
본 명세서에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. Terms used in this specification have been selected as currently widely used general terms as possible while considering the functions in the present disclosure, but these may vary depending on the intention or precedent of a person skilled in the art, the emergence of new technology, and the like. In addition, in a specific case, there is a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the corresponding invention. Therefore, the terms used in the present disclosure should be defined based on the meaning of the term and the contents of the present disclosure, rather than the simple name of the term.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다.References in the singular herein include plural expressions unless the context clearly dictates the singular. Also, the plural expression includes the singular expression unless the context clearly dictates the plural.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. In the entire specification, when a part "includes" a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated.
또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어 또는 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.Also, as used herein, the term “unit” refers to a software or hardware component, and “unit” performs certain roles. However, "part" is not meant to be limited to software or hardware. A “unit” may be configured to reside on an addressable storage medium and may be configured to refresh one or more processors. Thus, by way of example, “part” includes components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functionality provided within components and “parts” may be combined into a smaller number of components and “parts” or further divided into additional components and “parts”.
본 개시의 일 실시예에 따르면 "부"는 프로세서 및 메모리로 구현될 수 있다. 용어 "프로세서" 는 범용 프로세서, 중앙 처리 장치 (CPU), 마이크로프로세서, 디지털 신호 프로세서 (DSP), 제어기, 마이크로제어기, 상태 머신 등을 포함하도록 넓게 해석되어야 한다. 몇몇 환경에서는, "프로세서" 는 주문형 반도체 (ASIC), 프로그램가능 로직 디바이스 (PLD), 필드 프로그램가능 게이트 어레이 (FPGA) 등을 지칭할 수도 있다. 용어 "프로세서" 는, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들의 조합, DSP 코어와 결합한 하나 이상의 마이크로프로세서들의 조합, 또는 임의의 다른 그러한 구성들의 조합과 같은 처리 디바이스들의 조합을 지칭할 수도 있다.According to an embodiment of the present disclosure, “unit” may be implemented with a processor and a memory. The term “processor” should be interpreted broadly to include general purpose processors, central processing units (CPUs), microprocessors, digital signal processors (DSPs), controllers, microcontrollers, state machines, and the like. In some circumstances, a “processor” may refer to an application specific semiconductor (ASIC), a programmable logic device (PLD), a field programmable gate array (FPGA), or the like. The term "processor" refers to a combination of processing devices, such as, for example, a combination of a DSP and a microprocessor, a combination of a plurality of microprocessors, a combination of one or more microprocessors in combination with a DSP core, or any other such configurations. may refer to.
용어 "메모리" 는 전자 정보를 저장 가능한 임의의 전자 컴포넌트를 포함하도록 넓게 해석되어야 한다. 용어 메모리는 임의 액세스 메모리 (RAM), 판독-전용 메모리 (ROM), 비-휘발성 임의 액세스 메모리 (NVRAM), 프로그램가능 판독-전용 메모리 (PROM), 소거-프로그램가능 판독 전용 메모리 (EPROM), 전기적으로 소거가능 PROM (EEPROM), 플래쉬 메모리, 자기 또는 광학 데이터 저장장치, 레지스터들 등과 같은 프로세서-판독가능 매체의 다양한 유형들을 지칭할 수도 있다. 프로세서가 메모리로부터 정보를 판독하고/하거나 메모리에 정보를 기록할 수 있다면 메모리는 프로세서와 전자 통신 상태에 있다고 불린다. 프로세서에 집적된 메모리는 프로세서와 전자 통신 상태에 있다.The term “memory” should be interpreted broadly to include any electronic component capable of storing electronic information. The term memory includes random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), erase-programmable read-only memory (EPROM), electrical may refer to various types of processor-readable media, such as erasable PROM (EEPROM), flash memory, magnetic or optical data storage, registers, and the like. A memory is said to be in electronic communication with the processor if the processor is capable of reading information from and/or writing information to the memory. A memory integrated in the processor is in electronic communication with the processor.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략한다.Hereinafter, with reference to the accompanying drawings, embodiments will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. And in order to clearly describe the present disclosure in the drawings, parts not related to the description will be omitted.
도 1은 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)의 블록도이다.1 is a block diagram of a provider terminal 310 or a
도 1을 참조하면, 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)는 데이터 학습부(110) 또는 데이터 인식부(120) 중 적어도 하나를 포함할 수 있다. 상술한 바와 같은 공급자 단말기(310) 또는 서버(330)는 프로세서 및 메모리를 포함할 수 있다.Referring to FIG. 1 , a provider terminal 310 or a
데이터 학습부(110)는 학습 데이터 세트를 이용하여 타겟 태스크(target task)를 수행하기 위한 기계학습모델을 학습할 수 있다. 데이터 학습부(110)는 학습 데이터 세트에 포함된 분석 대상 데이터 및 분석 대상 데이터에 대응되는 레이블 정보를 수신할 수 있다. 분석 대상 데이터는 분석의 대상이 되는 데이터이며, 레이블 정보는 분석 대상 데이터에 대한 실제(ground truth) 정보일 수 있다. 만약 타겟 태스크가 사진으로부터 사진에 포함된 물건의 이름을 인식하는 것이라면, 분석 대상 데이터는 복수의 사진이 될 것이고, 레이블 정보는 복수의 사진 각각에 대응되는 물건의 이름이 될 것이다.The
데이터 학습부(110)는 분석 대상 데이터와 레이블 정보의 관계에 대해 기계학습을 수행하여 기계학습모델을 획득할 수 있다. 데이터 학습부(110)가 획득한 기계학습모델은 분석 대상 데이터를 이용하여 레이블 정보를 생성하기 위한 모델일 수 있다. The
데이터 인식부(120)는 데이터 학습부(110)의 기계학습모델을 수신하여 저장하고 있을 수 있다. 데이터 인식부(120)는 입력 데이터에 기계학습모델을 적용하여 레이블 정보를 출력할 수 있다. 또한, 데이터 인식부(120)는 입력 데이터, 레이블 정보 및 기계학습모델에 의해 출력된 결과를 기계학습모델을 갱신하는데 이용할 수 있다.The
데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 이미 설명한 각종 전자 장치에 탑재될 수도 있다.At least one of the
또한 데이터 학습부(110) 및 데이터 인식부(120)는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(110) 및 데이터 인식부(120) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(110) 및 데이터 인식부(120)는 유선 또는 무선으로 통하여, 데이터 학습부(110)가 구축한 기계학습모델 정보를 데이터 인식부(120)로 제공할 수도 있고, 데이터 인식부(120)로 입력된 데이터가 추가 학습 데이터로써 데이터 학습부(110)로 제공될 수도 있다.Also, the
한편, 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(110) 및 데이터 인식부(120) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 메모리 또는 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다. Meanwhile, at least one of the
본 개시의 일 실시예에 따른 데이터 학습부(110)는 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)를 포함할 수 있다.The
데이터 획득부(111)는 기계학습에 필요한 데이터를 획득할 수 있다. 학습을 위해서는 많은 데이터가 필요하므로, 데이터 획득부(111)는 복수의 데이터를 포함하는 학습 데이터 세트를 수신할 수 있다. The
복수의 데이터 각각에 대하여 레이블 정보가 할당될 수 있다. 레이블 정보는 복수의 데이터의 각각을 설명하는 정보일 수 있다. 레이블 정보는 타겟 태스크(target task)가 도출하고자 하는 정보일 수 있다. 레이블 정보는 사용자 입력으로부터 획득되거나, 메모리로부터 획득되거나, 기계학습모델의 결과로부터 획득될 수 있다. 예를 들어 타겟 태스크가 영상으로부터 영상의 내용을 예측하기 위한 것이라면, 기계학습에 사용되는 복수의 데이터는 영상이 될 것이며 레이블 정보는 영상의 내용이 될 것이다.Label information may be allocated to each of the plurality of data. The label information may be information describing each of a plurality of data. The label information may be information that a target task wants to derive. The label information may be obtained from a user input, from a memory, or from a result of a machine learning model. For example, if the target task is to predict the content of an image from an image, a plurality of data used for machine learning will be an image, and label information will be the content of the image.
전처리부(112)는 수신된 데이터가 기계학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(112)는 후술할 모델 학습부(114)가 이용할 수 있도록, 획득된 학습 데이터 세트를 미리 설정된 포맷으로 가공할 수 있다. The
학습 데이터 선택부(113)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(114)에 제공될 수 있다. 학습 데이터 선택부(113)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(113)는 후술할 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.The learning
모델 학습부(114)는 학습 데이터 세트에 기초하여 어떤 레이블 정보를 출력할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(114)는 분석 대상 데이터 및 레이블 정보를 학습 데이터로써 이용하여 기계학습을 수행할 수 있다. 또한 모델 학습부(114)는 기존에 획득된 기계학습모델을 추가적으로 이용하여 기계학습을 수행할 수 있다. 이 경우, 기존에 획득된 기계학습모델은 미리 구축된 모델일 수 있다. 예를 들어, 기계학습모델은 기본 학습 데이터를 입력 받아 미리 구축된 모델일 수 있다.The
기계학습모델은, 학습모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 기계학습모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, Deep Neural Network (DNN), Recurrent Neural Network (RNN), Long Short-Term Memory models (LSTM), BRDNN (Bidirectional Recurrent Deep Neural Network), Convolutional Neural Networks (CNN)과 같은 모델이 기계학습모델로써 사용될 수 있으나, 이에 한정되지 않는다.The machine learning model may be constructed in consideration of the field of application of the learning model, the purpose of learning, or the computer performance of the device. The machine learning model may be, for example, a model based on a neural network. For example, models such as Deep Neural Network (DNN), Recurrent Neural Network (RNN), Long Short-Term Memory models (LSTM), BRDNN (Bidirectional Recurrent Deep Neural Network), Convolutional Neural Networks (CNN) can be used as machine learning models. However, the present invention is not limited thereto.
다양한 실시예에 따르면, 모델 학습부(114)는 미리 구축된 기계학습모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 기계학습모델을 학습할 기계학습모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 기계학습모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 장소, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다. According to various embodiments, the
또한, 모델 학습부(114)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 기계학습모델을 학습시킬 수 있다.Also, the
또한, 모델 학습부(114)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning)을 통하여, 기계학습모델을 학습할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 별다른 지도없이 타겟 태스크(target task)을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 타겟 태스크를 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 기계학습모델을 획득할 수 있다. 또한, 모델 학습부(114)는, 예를 들어, 학습에 따른 타겟 태스크의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 기계학습모델을 학습할 수 있다.Also, the
또한, 기계학습모델이 학습되면, 모델 학습부(114)는 학습된 기계학습모델을 저장할 수 있다. 이 경우, 모델 학습부(114)는 학습된 기계학습모델을 데이터 인식부(120)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(114)는 학습된 기계학습모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.In addition, when the machine learning model is learned, the
학습된 기계학습모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.The memory in which the learned machine learning model is stored may also store, for example, commands or data related to at least one other component of the electronic device. The memory may also store software and/or programs. A program may include, for example, a kernel, middleware, an application programming interface (API) and/or an application program (or "application"), and the like.
모델 평가부(115)는 기계학습모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(114)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 기계학습모델을 평가하기 위한 기 설정된 데이터일 수 있다. The
예를 들어, 모델 평가부(115)는 평가 데이터에 대한 학습된 기계학습모델의 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 기계학습모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(115)는 학습된 기계학습모델이 적합하지 않은 것으로 평가할 수 있다.For example, the
한편, 학습된 기계학습모델이 복수 개가 존재하는 경우, 모델 평가부(115)는 각각의 학습된 기계학습모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 기계학습모델로써 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(115)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 기계학습모델로써 결정할 수 있다.On the other hand, when there are a plurality of learned machine learning models, the
한편, 데이터 학습부(110) 내의 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.Meanwhile, at least one of the
또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the
또한, 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(111), 전처리부(112), 학습 데이터 선택부(113), 모델 학습부(114) 및 모델 평가부(115) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the
본 개시의 일 실시예에 따른 데이터 인식부(120)는 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)를 포함할 수 있다.The
데이터 획득부(121)는 입력 데이터를 수신할 수 있다. 전처리부(122)는 획득된 입력 데이터가 인식 데이터 선택부(123) 또는 인식 결과 제공부(124)에서 이용될 수 있도록, 획득된 입력 데이터를 전처리할 수 있다. The
인식 데이터 선택부(123)는 전처리된 데이터 중에서 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(124)에게 제공될 수 있다. 인식 데이터 선택부(123)는 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(123)는 모델 학습부(114)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.The recognition
인식 결과 제공부(124)는 선택된 데이터를 기계학습모델에 적용하여 결과 데이터를 획득할 수 있다. 기계학습모델은 모델 학습부(114)에 의하여 생성된 기계학습모델일 수 있다. 인식 결과 제공부(124)는 결과 데이터를 출력할 수 있다.The recognition
모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 기계학습모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(125)는 인식 결과 제공부(124)에 의해 제공되는 인식 결과를 모델 학습부(114)에게 제공함으로써, 모델 학습부(114)가 기계학습모델을 갱신하도록 할 수 있다.The
한편, 데이터 인식부(120) 내의 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.Meanwhile, at least one of the
또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.In addition, the
또한, 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(121), 전처리부(122), 인식 데이터 선택부(123), 인식 결과 제공부(124) 및 모델 갱신부(125) 중 적어도 하나가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.In addition, at least one of the
아래에서는 데이터 학습부(110)의 데이터 획득부(111), 전처리부(112) 및 학습 데이터 선택부(113)가 학습 데이터를 수신하여 처리하는 방법 및 장치에 대하여 보다 자세히 설명한다. Hereinafter, a method and apparatus for the
도 2는 본 개시의 일 실시예에 따른 공급자 단말기(310) 또는 서버(330)를 나타낸 도면이다.2 is a diagram illustrating a provider terminal 310 or a
공급자 단말기(310) 또는 서버(330)는 프로세서(210) 및 메모리(220)를 포함할 수 있다. 프로세서(210)는 메모리(220)에 저장된 명령어들을 수행할 수 있다. The provider terminal 310 or the
상술한 바와 같이 공급자 단말기(310) 또는 서버(330)는 데이터 학습부(110) 또는 데이터 인식부(120)를 포함할 수 있다. 데이터 학습부(110) 또는 데이터 인식부(120)는 프로세서(210) 및 메모리(220)에 의하여 구현될 수 있다. As described above, the provider terminal 310 or the
도 1 및 도 2는 공급자 단말기(310) 또는 서버(330)에 대하여 설명한 것이지만 이에 한정되는 것은 아니다. 이하에서 설명할 수요자 단말기(320)도 공급자 단말기(310) 또는 서버(330)와 동일한 구성을 포함할 수 있다.1 and 2 have been described with respect to the provider terminal 310 or the
도 3 은 본 개시의 일 실시예에 따른 기계학습모델 공유 또는 판매 시스템을 개괄적으로 나타내는 도면이다.3 is a diagram schematically illustrating a machine learning model sharing or sales system according to an embodiment of the present disclosure.
기계학습모델 공유 및 판매를 위한 시스템은 공급자 단말기(310), 수요자 단말기(320) 또는 서버(330)를 포함할 수 있다. 공급자 단말기(310)는 공급자가 이용하는 단말기로써, 스마트폰, PC, 또는 테블릿 등을 포함할 수 있다. 수요자 단말기(320)는 수요자가 이용하는 단말기로써, 스마트폰, PC, 또는 테블릿 등을 포함할 수 있다. 서버(330)는 공급자 단말기(310) 또는 수요자 단말기(320)와 유무선으로 통신할 수 있다. 서버(330)는 기계학습모델을 유통하기 위한 서비스를 제공할 수 있다. 서버(330)는 수요자 또는 공급자에게 결제서비스를 제공할 수 있다. 즉, 서버(330)는 기계학습모델의 판매에 따라 수익을 공급자에게 제공할 수 있다. 또한 서버(330)는 기계학습모델 구매에 따라 수요자에게 과금할 수 있다. 또한 서버(330)는 기계학습모델 유통과 관련된 다양한 서비스를 제공할 수 있다.A system for sharing and selling a machine learning model may include a supplier terminal 310 , a
공급자 단말기(310)는 서버(330)로 기계학습모델을 송신할 수 있다. 서버(330)는 수신한 기계학습모델을 저장할 수 있다. 또한 서버(330)는 별도의 클라우드에 기계학습모델을 저장할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신된 기계학습모델을 튜닝하는 모델 튜닝 서비스를 제공할 수 있다. 모델 튜닝 서비스에 의하여 수요자는 이미 생성된 기계학습모델을 자신의 입맛에 맞게 변경할 수 있다. 모델 튜닝 요청이 있는 경우, 서버(330), 공급자 단말기(310) 또는 클라우드는 기계학습모델을 새로운 데이터에 기초하여 재학습할 수 있다. 또한 서버(330) 또는 클라우드는 재학습된 기계학습모델을 저장할 수 있다.The provider terminal 310 may transmit the machine learning model to the
서버(330)는 데이터 정재 서비스를 제공할 수 있다. 데이터 정재 서비스는 러(RAW) 데이터를 레이블링하거나, 데이터가 기계학습모델에 적용될 수 있도록 처리하는 것을 의미한다. 데이터 정재 서비스는 크라우드 소싱을 사용할 수 있다. 예를 들어 데이터 정재 서비스에 따르면, 서버(330)는 수요자 단말기(320)가 제공한 러(RAW) 데이터에 대하여 레이블링을 요청하는 프로젝트를 생성할 수 있다. 적어도 한명의 참여자가 프로젝트에 참여하여 러 데이터에 대해 레이블링을 할 수 있다. 서버(330)는 그에 대한 보상으로 프로젝ㅌ트의 참여자에게 포인트를 지급할 수 있다. 포인트는 현금화될 수 있다.The
이하에서는 공급자 단말기(310), 수요자 단말기(320) 및 서버(330)의 동작에 대하여 보다 자세히 설명한다.Hereinafter, operations of the provider terminal 310 , the
도 4는 본 개시의 일 실시예에 따라 기계학습모델을 공유하기 위한 서버의 동작 방법을 나타내는 흐름도이다. 4 is a flowchart illustrating an operation method of a server for sharing a machine learning model according to an embodiment of the present disclosure.
서버(330)는 공급자 단말기(310)로부터 기계학습모델과 관련된 등록 정보를 수신하는 단계(410)를 수행할 수 있다. 기계학습모델과 관련된 등록 정보는 기계학습모델의 제목, 기계학습모델의 설명, 기계학습모델의 가격, 프레임워크, 기계학습모델의 목적, 기계학습모델의 분야, 기계학습모델의 클래스, 기계학습모델의 워터마크 이미지, 깃허브(코드) 또는 정확도 중 적어도 하나를 포함할 수 있다. The
여기서 프레임워크는 사용자가 기계학습모델을 쉽게 구현할 수 있는 환경을 제공하는 툴(TOOL)이다. 프레임워크에는 텐서플로우 또는 파이토치를 포함할 수 있다.Here, the framework is a tool that provides an environment in which users can easily implement machine learning models. Frameworks can include TensorFlow or PyTorch.
기계학습모델의 클래스는 기계학습모델이 분류할 수 있는 종류를 나타낼 수 있다. 예를 들어 기계학습모델이 영상 내에 있는 물체가 고양이 또는 개인지 구별할 수 있다면 클래스는 고양이, 개가 될 수 있다.The class of the machine learning model may indicate the kind that the machine learning model can classify. For example, if the machine learning model can distinguish whether an object in an image is a cat or a dog, the class could be a cat or a dog.
기계학습모델의 워터마크 이미지는 공급자의 기계학습모델이 수요자의 기계학습모델과 일치하는지 여부, 또는 공급자의 기계학습모델이 다른 이에 의하여 도용된 것은 아닌지 확인하기 위한 구성으로써, 이에 대해서는 추후에 더 자세히 설명한다. 워터마크 이미지는 공급자 단말기(310)가 제공할 수도 있으며, 서버(330)가 생성할 수도 있다.The watermark image of the machine learning model is a configuration to check whether the supplier's machine learning model matches the consumer's machine learning model or whether the supplier's machine learning model has been stolen by others. Explain. The watermark image may be provided by the provider terminal 310 or may be generated by the
기계학습모델의 정확도는 도 1의 모델 평가부(115) 또는 모델 갱신부(125)에서 도출한 기계학습모델에 대한 정확도일 수 있다. 정확도는 테스트 데이터 세트에 기계학습모델을 적용하여 예측값(예측 레이블)을 도출하고, 예측값이 실제값(Ground Truth Value; 실제 레이블)과 동일한지 여부에 기초하여 도출될 수 있다.The accuracy of the machine learning model may be the accuracy of the machine learning model derived from the
서버(330)는 공급자 단말기(310)로부터 기계학습모델, 기계학습모델에 대한 테스트 코드, 및 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계(420)를 수행할 수 있다. 기계학습모델은 적어도 하나의 파일로 이루어질 수 있다. 또한 기계학습모델은 테스트 코드에 의하여 실행될 수 있다. 테스트 코드는 적어도 하나의 프로그래밍 언어로 구현될 수 있다. 또한 테스트 데이터 세트는 기계학습모델을 테스트하기 위한 데이터일 수 있다. 테스트 데이터 세트는 분석 대상 데이터를 포함할 수 있다. 또한 테스트 데이터 세트는 분석 대상 데이터에 대응되는 실제 레이블 정보를 더 포함할 수 있다. 수요자는 기계학습모델, 테스트 코드에 기반하여 자신의 목적에 맞게 기계학습모델을 사용할 수 있다. The
서버(330)는 테스트 데이터 세트를 테스트 코드에 적용하여 테스트 결과를 획득하는 단계(430)를 수행할 수 있다. 서버(330)는 테스트 코드를 이용하여 기계학습모델을 실행할 수 있다. 또한 서버(330)는 테스트 데이터 세트 중 분석 대상 데이터를 기계학습모델에 적용하여 테스트 결과를 획득할 수 있다. 테스트 결과는 분석 대상 데이터에 대한 예측된 레이블 정보일 수 있다. 하지만 이에 한정되는 것은 아니며 서버(330)의 관리자가 테스트 코드를 이용하여 테스트 데이터 세트에 포함된 분석 대상 데이터를 기계학습모델에 적용하고, 테스트 결과를 서버(330)에 입력할 수 있다.The
서버(330)는 테스트 결과에 기초하여 기계학습모델을 승인하는 단계(440)를 수행할 수 있다. 서버(330)는 테스트 결과를 테스트 데이터의 실제 레이블 정보와 비교할 수 있다. 비교에 기초하여, 서버(330)는 테스트 결과의 정확도를 획득할 수 있다. 단계(410)에서 획득된 정확도에서 테스트 결과의 정확도를 뺀 값이 임계값 이하인 경우 서버(330)는 기계학습모델을 승인할 수 있다. 임계값은 양수이고 미리 정해진 값일 수 있다.The
기계학습모델이 승인되지 않은 경우, 서버(330)는 공급자 단말기(310)에 기계학습모델 또는 테스트 데이터 세트를 다시 요청할 수 있다. 서버(330)는 재전송된 기계학습모델 또는 테스트 데이터 세트에 기반하여 단계(430) 및 단계(440)를 더 수행할 수 있다. 또한 단계(410)에서 획득된 정확도에서 테스트 결과의 정확도를 뺀 값이 임계값 초과인 경우, 서버(330)는 단계(410)에서 획득된 정확도극 테스트 결과의 정확도로 교체하고, 기계학습모델을 승인할 수 있다.If the machine learning model is not approved, the
기계학습모델이 승인된 경우, 서버(330)는 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계(450)를 수행할 수 있다. 워터마킹은 서버(330) 또는 수요자 단말기(320)가 수신한 기계학습모델이 진정한 것인지 확인하는 절차일 수 있다. 또한 워터마킹은 서버(330)가 기계학습모델의 도용을 판단하기 위한 절차일 수 있다. 워터마킹에 대해서는 도 5와 함께 자세히 설명한다.When the machine learning model is approved, the
서버(330)는 기계학습모델과 관련된 등록 정보, 기계학습모델, 테스트 코드, 테스트 데이터 세트, 및 워터마킹 결과정보를 데이터베이스에 저장하는 단계(460)를 수행할 수 있다. 서버(330)는 수요자 단말기(320)의 요청에 기초하여 기계학습모델과 관련된 등록 정보를 수요자 단말기(320)로 송신할 수 있다. 수요자는 기계학습모델과 관련된 등록 정보를 확인하고, 기계학습모델을 구매할 수 있다. 수요자 단말기(320)는 결제정보를 서버(330)로 송신하고, 서버(330)는 결제정보를 확인 후에 기계학습모델 등을 수요자 단말기(320)로 송신할 수 있다. 여기서 결제정보는 결제를 위한 카드와 관련된 정보, 또는 은행계좌와 관련된 정보와 같은 서버(330)로 송금을 위해 필요한 정보를 포함할 수 있다.The
도 5는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.5 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
서버(330)는 워터마킹 결과정보를 획득하는 단계(450)를 수행하기 위하여 아래와 같은 동작을 수행할 수 있다. 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 획득하는 단계(510)를 수행할 수 있다. 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 공급자 단말기(310)로부터 수신할 수 있다. 또한 서버(330)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보 중 적어도 하나를 공급자에 대한 정보에 기초하여 생성할 수 있다.The
본 개시의 일 실시예에 따르면, 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는지 여부를 결정할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는 경우, 수신한 워터마크 이미지를 사용할 수 있다. 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 없는 경우, 공급자에 대한 정보에 기초하여 워터마크 이미지를 생성할 수 있다. 공급자에 대한 정보는 공급자의 식별정보, 공급자 단말기의 식별정보를 포함할 수 있다. 공급자에 대한 정보는 공급자의 아이디, 이름, 성별, 주소, 이메일, 정화번호, 공급자 단말기의 모델명, 공급자 단말기의 IP주소, 또는 MAC주소 중 적어도 하나를 이용하여 생성될 수 있다. 또한 서버(330)는 생성된 워터마크 이미지를 공급자 단말기(310)에 송신할 수 있다.According to an embodiment of the present disclosure, the
본 개시의 다른 실시예에 따르면, 서버(330)는 공급자 단말기(310)로부터 수신한 워터마크 이미지가 있는지 여부를 결정하지 않고, 공급자에 대한 정보에 기초하여 워터마크 이미지를 생성할 수 있다. 또한 서버(330)는 워터마크 이미지를 공급자 단말기(310)에 송신할 수 있다.According to another embodiment of the present disclosure, the
워터마크 이미지에 대한 레이블 정보는 워터마크 이미지에 대응되는 레이블일 수 있다. 워터마크 이미지에 대한 레이블 정보는 임의로 결정될 수 있다. 워터마크 이미지에 대한 레이블 정보는 실제(Ground Truth) 레이블 정보로써 사용될 수 있다.The label information for the watermark image may be a label corresponding to the watermark image. Label information for the watermark image may be arbitrarily determined. Label information for the watermark image may be used as ground truth label information.
서버(330) 또는 공급자 단말기(310)는 워터마크 이미지 및 워터마크 이미지에 대한 레이블 정보에 기초하여 기계학습모델을 추가적으로 학습하는 단계(520)를 수행할 수 있다. The
본 개시의 일 실시예에 따르면, 서버(330) 또는 공급자 단말기(310)가 기계학습모델을 추가적으로 학습한다는 것은, 순전파를 수행하는 것을 의미할 수 있다. 순전파를 수행하는 과정은 서버(330) 또는 공급자 단말기(310)에 포함된 인식 결과 제공부(124)에서 수행될 수 있다. 순전파는 워터마크 이미지를 기계학습모델에 적용함을 의미한다. 단계(520)를 수행하기 위한 데이터가 서버(330)에 있는 경우, 공급자 단말기(310)는 서버(330)로부터 데이터를 수신할 수 있다. 반대로 단계(520)를 수행하기 위한 데이터가 공급자 단말기(310)에 있는 경우, 서버(330)는 공급자 단말기(310)로부터 데이터를 수신할 수 있다. 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 워터마크 이미지에 대응하는 워터마킹 결과정보를 획득할 수 있다.According to an embodiment of the present disclosure, when the
본 개시의 다른 실시예에 따르면, 서버(330) 또는 공급자 단말기(310)가 기계학습모델을 추가적으로 학습한다는 것은, 순전파 및 역전파를 수행하여 기계학습모델을 업데이트하는 것을 의미할 수 있다. 순전파 및 역전파를 수행하는 과정은 서버(330) 또는 공급자 단말기(310)의 모델 학습부(114)에서 수행될 수 있다. 보다 구체적으로 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 예측 데이터를 획득할 수 있다. 이를 순전파라고 한다. 또한 서버(330) 또는 공급자 단말기(310)는 예측 데이터 및 워터마크 이미지에 대한 레이블의 오차에 기반하여, 오차가 줄어들도록 기계학습모델에 포함된 가중치를 업데이트하는 과정을 수행할 수 있다. 이를 역전파라고 한다. 이를 통하여 기계학습모델은 업데이트될 수 있다.According to another embodiment of the present disclosure, that the
서버(330) 또는 공급자 단말기(310)는 기계학습모델에 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계(530)를 수행할 수 있다. 단계(530)는 서버(330) 또는 공급자 단말기(310)의 데이터 인식부(120)에서 수행할 수 있다. 여기서 기계학습모델은 위에서 설명하였듯이 워터마크 이미지에 의하여 업데이트된 기계학습모델일 수도 있고, 업데이트되지 않은 기계학습모델일 수도 있다. 서버(330) 또는 공급자 단말기(310)는 워터마크 이미지를 기계학습모델에 적용하여 워터마킹 결과정보를 획득할 수 있다. 즉, 단계(530)에서는 순전파가 수행될 수 있다. 워터마킹 결과정보는 기계학습모델의 최종 결과값일 수도 있다. 최종 결과값은 히든레이어에 포함된 최종레이어(n)의 출력일 수 있다. 하지만 이에 한정되는 것은 아니며, 기계학습모델의 히든레이어에 포함된 값일 수도 있다. 예를 들어 워터마킹 결과정보는 최종레이어(n)의 직전레이어(n-1)의 출력일 수 있다. 워터마킹 결과정보는 워터마크 이미지에 대한 레이블과 같거나 다를 수 있다. 서버(330)는 워터마킹 결과정보를 획득하거나, 공급자 단말기(310)로부터 수신할 수 있다. 단계(460)에서 서버(330)는 워터마킹 결과정보를 저장할 수 있다.The
도 6는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.6 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
도 6이 수행되기 전에 서버(330)는 공급자 단말기(310)로부터 수신한 기계학습모델에 기초하여 API(Application Programming Interface)를 생성할 수 있다. 여기서, API는 사용자가 기계학습모델을 이용하여 소프트웨어를 쉽게 구현할 수 있도록 돕는 인터페이스를 의미할 수 있다. 서버(330)는 API를 저장하고 있을 수 있다.Before FIG. 6 is performed, the
수요자 단말기(320)는 기계학습모델과 관련된 등록 정보를 요청할 수 있다. 서버(330)는 수요자 단말기의 요청에 따라 기계학습모델과 관련된 등록 정보를 수요자 단말기로 송신하는 단계(610)를 수행할 수 있다. 수요자 단말기(320)는 수신된 정보에 기초하여 도 7과 같은 화면을 표시할 수 있다. The
도 7은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.7 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
수요자 단말기(320)의 화면의 제 1 영역(710)에는 썸네일이 표시될 수 있다. 제 1 영역(710)에는 기계학습모델과 관련된 이미지 또는 영상이 표시될 수 있다. 예를 들어 제 1 영역(710)에는 기계학습모델의 장점에 대한 정보 또는 기계학습모델의 사용방법에 대한 정보가 이미지로 표시될 수 있다.A thumbnail may be displayed in the
수요자 단말기(320)의 화면의 제 2 영역(720)에는 설명이 표시될 수 있다. 제 2 영역(720)에는 기계학습모델과 관련된 텍스트가 표시될 수 있다. 예를 들어 제 2 영역(720)에는 기계학습모델의 장점에 대한 정보 또는 기계학습모델의 사용방법에 대한 정보가 텍스트로 표시될 수 있다.A description may be displayed in the
수요자 단말기(320)의 화면의 제 3 영역(730)에는 기계학습모델과 관련된 등록 정보가 표시될 수 있다. 예를 들어 제 3 영역(730)에는 기계학습모델의 제목, 기계학습모델의 설명, 기계학습모델의 가격, 프레임워크, 기계학습모델의 목적, 기계학습모델의 분야, 기계학습모델의 클래스, 기계학습모델의 워터마크 이미지, 깃허브(코드) 또는 정확도 중 적어도 하나가 표시될 수 있다.Registration information related to the machine learning model may be displayed in the
수요자 단말기(320)의 화면의 제 4 영역(740)에는 기계학습모델을 선택하기 위한 버튼이 표시될 수 있다. 제 4 영역(740)의 버튼은 기계학습모델을 구매하거나 다운로드하기 위한 버튼일 수 있다. 사용자가 제 4 영역(740)의 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 서버(330)로 선택된 기계학습모델에 대한 식별정보를 송신할 수 있다. 서버(330)는 식별정보에 기초하여 수요자 단말기(320)가 선택한 기계학습모델을 저장부로부터 획득할 수 있다.A button for selecting a machine learning model may be displayed in the
수요자 단말기(320)의 화면의 제 5 영역(750)에는 기계학습모델을 테스트하기 위한 버튼이 표시될 수 있다. 사용자가 제 5 영역(750)의 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 기계학습모델을 테스트하기 위한 화면을 표시할 수 있다.A button for testing the machine learning model may be displayed in the
도 6을 다시 참조하면, 이미 설명한 바와 같이, 수요자 단말기(320)가 선택된 기계학습모델에 대한 식별정보를 서버(330)로 송신할 수 있다. 또한 서버(330)는 수요자 단말기(320)로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계(620)를 수행할 수 있다. 서버(330)는 기계학습모델에 대한 식별 정보와 함께 수요자 단말기(320)의 요청 내용에 대한 정보를 수신할 수 있다. 요청 내용은 구매 또는 테스트 중 하나를 포함할 수 있다.Referring back to FIG. 6 , as already described, the
요청 내용이 구매인 경우, 서버(330) 및 수요자 단말기(320)는 결제정보를 송수신할 수 있다. 서버(330)는 결제를 요청할 수 있고, 수요자 단말기(320)는 서버(330)로 송금을 위해 필요한 정보를 송신할 수 있다. 수요자 단말기(320)로부터 서버(330)로 결제가 정상적으로 이루어진 경우 다음과 같은 동작을 더 수행할 수 있다.When the request is a purchase, the
서버(330)는 선택된 기계학습모델을 수요자 단말기로 송신하는 단계(630)를 수행할 수 있다. 송신되는 기계학습모델은 단계(420)에서 공급자 단말기(310)로부터 수신된 기계학습모델과 동일할 수 있다. 서버(330)는 선택된 기계학습모델과 관련된 API를 수요자 단말기로 송신할 수도 있다. 수요자는 API를 이용하여 선택된 기계학습모델에 기초한 소프트웨어를 쉽게 구현할 수 있다. API에 의하여 수요자는 기계학습모델을 이용하여 소프트웨어를 구현할 노력을 덜 수 있다. 또한 서버(330)는 수요자 단말기에 선택된 기계학습모델을 송신하는지 또는 선택된 기계학습모델과 관련된 API를 송신하는지에 따라 과금을 달리 할 수 있다. 예를 들어, 서버(330)는 선택된 기계학습모델을 송신하는 경우, API를 송신하는 경우보다 저렴하게 과금할 수 있다. 반대로 서버(330)는 선택된 기계학습모델을 송신하는 경우, API를 송신하는 경우보다 비싸게 과금할 수 있다. 하지만 이에 한정되는 것은 아니며 과금을 달리하지 않을 수 있다.The
또한 수요자 단말기(320)는 선택된 기계학습모델에 대한 API가 구현되어 있지 않은 경우, 서버(330)에 API를 구현해줄 것을 요청할 수 있다. 서버(330)는 API 구현에 소요되는 비용을 수요자 단말기(320)에 요청할 수 있다. 수요자 단말기(320)가 해당 비용을 송금한 경우, 서버(330)는 API를 생성하여 수요자 단말기(320)에 제공할 수 있다.In addition, when the API for the selected machine learning model is not implemented, the
서버(330)는 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보 중 적어도 하나를 수요자 단말기로 송신하는 단계(640)를 수행할 수 있다. 수요자 단말기(320)는 수신된 워터마크 이미지를 기계학습모델에 적용할 수 있다. 수요자 단말기(320)는 선택된 기계학습모델에 대한 워터마크 이미지를 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성할 수 있다. The
본 개시의 일 실시예에 따르면, 수요자 단말기(320)는 워터마킹 확인정보를 워터마킹 결과정보와 비교하여 동일여부를 판단할 수 있다. 수요자 단말기(320)는 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 서버(330)로 송신할 수 있다. 또한 서버(330)는 선택된 기계학습모델에 대한 워터마킹 결과정보 및 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 수요자 단말기로부터 수신하는 단계(650)를 수행할 수 있다.According to an embodiment of the present disclosure, the
워터마킹 확인정보가 워터마킹 결과정보와 동일하지 않다면 수요자 단말기(320)는 서버(330)에 기계학습모델을 다시 요청할 수 있다. 동일하지 않다면 수요자 단말기(320)는 서버(330)에 기계학습모델을 다시 요청할 수 있다. 또한 수요자 단말기(320)는 서버(330)에 환불을 요청할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하다면 수요자 단말기(320)는 거래 완료 정보를 서버(330)에 송신할 수 있다.If the watermarking confirmation information is not the same as the watermarking result information, the
본 개시의 다른 실시예에 따르면, 수요자 단말기(320)는 워터마킹 확인정보를 서버(330)로 송신할 수 있다. 서버(330)는 워터마킹 확인정보를 워터마킹 결과정보와 비교하여 동일여부를 판단할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하지 않다면 서버(330)는 수요자 단말기(320)에 기계학습모델을 재송신할 수 있다. 또한 수요자 단말기(320)는 서버(330)에 환불을 요청할 수 있다. 워터마킹 확인정보가 워터마킹 결과정보와 동일하다면 서버(330)는 거래 완료 정보를 생성할 수 있다.According to another embodiment of the present disclosure, the
위와 같은 도 6의 과정을 통하여 수요자는 서버(330)에 있는 기계학습모델과 수요자 단말기(320)에 있는 기계학습모델이 동일함을 확인할 수 있다. 또한 워터마킹 확인정보가 워터마킹 결과정보와 일치하지 않는 경우, 서버(330)는 공급자에게 그 정보를 송신하여, 공급자가 조치를 취할 수 있게 할 수 있다. 또한, 서로 다른 공급자가 등록한 기계학습모델들에 동일한 워터마크 이미지를 입력하고, 획득된 워터마킹 확인정보들이 동일하다면 서로 다른 공급자 중 하나가 저작권을 위반한 것으로 볼 수 있다. 따라서 서버(330)는 저작권을 효과적으로 보호할 수 있다.Through the process of FIG. 6 as described above, the consumer can confirm that the machine learning model in the
도 8은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.8 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
도 7에서 수요자 단말기(320)까 제 5 영역(750)의 모델 테스트를 클릭하거나 터치하는 경우, 수요자 단말기(320)는 도 8과 같은 화면을 표시할 수 있다. 수요자 단말기(320)는 미리 정해진 최대개수 이하의 입력 데이터(input1, input2, ...)를 서버(330)로 송신할 수 있다. 미리 정해진 최대개수는 수요자 단말기(320) 도는 서버(330)의 메모리에 저장되어 있을 수 있다. 도 8을 참조하면, 미리 정해진 최대개수는 3개일 수 있다. 서버(330)는 입력 데이터를 수신하여 선택된 기계학습모델에 적용할 수 있다. 또한 서버(330)는 기계학습모델의 출력으로써, 입력 데이터에 대응되는 예측 데이터를 생성할 수 있다. 서버(330)는 예측 데이터를 수요자 단말기(320)로 송신할 수 있다. 수요자 단말기(320)는 수신된 예측 데이터(output1, output2, ...)를 화면에 표시할 수 있다. In the case of clicking or touching the model test of the
수요자는 추가적인 테스트를 위하여 서버(330)에서 과금된 금액을 결제할 수 있다. 서버(330)는 수요자 단말기(320)로부터 결제정보를 수신할 수 있다. 즉, 서버(330)는 수요자 단말기(320)로부터 소정의 금액을 수신할 수 있다. 서버(330)는 상기 미리 정해진 최대개수를 초과한 입력 데이터를 수신하여 예측 데이터를 수요자 단말기(320)로 송신할 수 있다. 수요자는 기계학습모델을 구매하기 전에 기계학습모델의 성능을 테스트해볼 수 있다.The consumer may pay the amount charged by the
도 9는 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.9 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
서버(330)는 수요자 단말기(320)로부터 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계(910)를 수행할 수 있다. 서버(330)는 수요자 단말기(320)로부터 결제정보를 수신할 수 있다. 서버(330)는 수요자 단말기(320)가 튜닝 비용을 지불한 경우 단계(920)를 진행할 수 있다. 튜닝 비용은 수요자 단말기(320)에서 제공하는 데이터 세트의 크기에 기초하여 결정될 수 있다. 보다 구체적으로 데이터 세트의 크기와 비용은 비례관계일 수 있다.The
서버(330)는 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는지 여부를 결정할 수 있다. 튜닝 가능 여부에 대한 정보는 서버(330)의 데이터 베이스에 저장되어 있을 수 있다. 튜닝 가능 여부에 대한 정보는 단계(410)에서 공급자 단말기로부터 수신될 수 있으며, 단계(460)에서 데이터 베이스에 저장될 수 있다. The
선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 서버(330)는 수요자 단말기(320)에 데이터 세트를 요청하는 단계를 수행할 수 있다. 수요자 단말기(320)는 데이터 세트를 서버(330)로 송신할 수 있다. 데이터 세트는 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 기계학습모델을 튜닝하기 위해 사용되는 데이터들의 집합일 수 있다. 학습 데이터 세트에는 분석 대상 데이터 및 분석 대상 데이터에 대응되는 레이블 정보를 포함할 수 있다. 여기서 레이블 정보는 실제(ground truth) 정보일 수 있다. 예를 들어 분석 대상 데이터는 사진일 수 있고, 레이블 정보는 상기 사진에 포함된 물건의 이름일 수 있다. 튜닝용 테스트 데이터 세트는 분석 대상 데이터를 포함할 수 있다. 튜닝용 테스트 데이터 세트는 튜닝된 기계학습모델을 테스트하기 위해 사용될 수 있다. 튜닝용 테스트 데이터 세트는 분석 대상 데이터에 대응되는 레이블 정보를 더 포함할 수 있다.When the information on whether the selected machine learning model is tunable or not indicates that the selected machine learning model is tunable, the
서버(330)는 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계(920)를 수행할 수 있다. 서버(330)는 튜닝하는데 필요한 최소한의 데이터의 개수에 대한 정보를 저장하고 있을 수 있다. 최소한의 데이터의 개수는 서버(330)에 미리 정해져 있거나, 공급자 단말기(310)로부터 수신할 수 있다. 데이터 세트에 포함된 데이터의 개수가 최소한의 데이터의 개수보다 작은 경우, 서버(330)는 수요자 단말기(320)에 데이터 세트를 추가할 것을 요청할 수 있다. 서버(330)는 최소한의 데이터의 개수 이상의 데이터에 기반하여 기계학습을 수행하므로 정확도가 높은 기계학습모델을 생성할 수 있다.The
서버(330)는 선택된 기계학습모델을 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계(930)를 수행할 수 있다. 하지만 이에 한정되는 것은 아니고, 서버(330)는 공급자 단말기(310)로 학습 데이터 세트를 송신할 수 있다. 공급자 단말기(310)는 학습 데이터 세트에 기초하여 튜닝된 기계학습모델을 생성하고, 서버(330)로 송신할 수 있다. 서버(330)는 공급자 단말기(310)로부터 튜닝된 기계학습모델을 수신할 수 있다.The
서버(330) 또는 공급자 단말기(310)는 튜닝된 기계학습모델에 튜닝용 테스트 데이터 세트를 적용하여 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계(950)를 수행할 수 있다. 서버(330) 또는 공급자 단말기(310)는 튜닝 전의 정확도와 튜닝 후의 정확도를 비교할 수 있다. 튜닝 전의 정확도에서 튜닝 후의 정확도를 뺀 값이 임계값보다 작은 경우, 서버(330)는 공급자 단말기(310)에 정확도가 낮음을 나타내는 정보를 송신할 수 있다. 임계값은 음수일 수 있다. 임계값은 미리 정해진 값일 수도 있고, 수요자 단말기(320)로부터 수신된 값일 수 있다. 또한 튜닝 전의 정확도에서 튜닝 후의 정확도를 뺀 값이 임계값보다 작은 경우, 서버(330)는 수요자 단말기(320)에 추가적인 데이터 세트를 요청할 수 있다.The
수요자 단말기(320)는 튜닝된 기계학습모델의 정확도가 충분하지 않은 경우, 구매를 포기할 수 있다.The
서버(330)는 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계를 수행할 수 있다. 워터마킹의 과정은 도 5와 함께 설명하였으며, 중복되는 설명은 생략한다.The
서버(330)는 튜닝된 기계학습모델과 관련된 등록 정보, 튜닝된 기계학습모델, 튜닝된 테스트 코드, 튜닝용 테스트 데이터, 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 수행할 수 있다. 튜닝된 테스트 코드는 도 4의 테스트 코드와 동일 할 수 있다. 하지만 이에 한정되는 것은 아니며, 튜닝된 테스트 코드는 튜닝된 기계학습모델에 특화된 코드로써, 도 4의 테스트 코드와 다를 수 있다.The
도 10은 본 개시의 일 실시예에 따라 수요자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.10 is a diagram illustrating a screen that may be displayed in a consumer terminal according to an embodiment of the present disclosure.
도 10의 화면은 도 9의 과정 전에 수요자 단말기(320)에서 표시될 수 있다. 수요자 단말기(320)는 서버(330)로부터 수신한 정보에 기초하여 제 6 영역(1010)에 기계학습모델과 관련된 등록 정보를 표시할 수 있다. 수요자는 기계학습모델과 관련된 등록 정보에 기초하여 구매할 기계학습모델에 대하여 파악할 수 있다.The screen of FIG. 10 may be displayed on the
수요자 단말기(320)의 제 7 영역(1020)에는 모델 구매 버튼이 표시될 수 있다. 수요자가 모델 구매 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 구매를 요청하는 정보를 서버(330)로 송신할 수 있으며, 구매절차가 시작될 수 있다. A model purchase button may be displayed in the
수요자 단말기(320)의 제 8 영역(1030)에는 모델 튜닝 요청 버튼이 표시될 수 있다. 수요자가 모델 튜닝 요청 버튼을 클릭하거나 터치하는 경우, 수요자 단말기(320)는 선택된 기계학습모델에 대한 튜닝 요청 정보를 송신할 수 있다. 이에 대응하여 서버(330)는 단계(910)를 수행할 수 있다.A model tuning request button may be displayed in the
도 11은 본 개시의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다.11 is a flowchart illustrating an operation of a server according to an embodiment of the present disclosure.
서버(330)는 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계(1110)를 수행할 수 있다. 복수의 분석 대상 데이터는 기계학습모델에 사용되기 위한 데이터일 수 있다. 예를 들어 복수의 분석 대상 데이터는 기계학습모델의 분석 대상일 수 있다. 복수의 분석 대상 데이터는 데이터 학습부(110) 또는 데이터 인식부(120)에 입력되는 데이터 일 수 있다.The
또한, 서버(330)는 레이블링 요청 정보에 대응하여 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계(1120)를 수행할 수 있다. 프로젝트를 생성한다는 것은 가사의 작업공간을 만든다는 것이다. 프로젝트 참여자들은 참여자 단말기로 가상의 작업공간에 접속하여 복수의 분석 대상 데이터에 대한 레이블링을 수행할 수 있다. 레이블링 프로젝트는 수요자로부터 획득된 복수의 분석 대상 데이터를 포함할 수 있다. 또한 레이블링 프로젝트는 수요자 단말기(320)로부터 수신한 작업 가이드 정보를 포함할 수 있다. 참여자는 참여자 단말기를 이용하여 작업 가이드 정보에 기초하여 레이블 정보를 입력할 수 있다. 참여자 단말기는 프로젝트에 포함된 복수의 분석 대상 데이터에 대하여 레이블 정보를 서버(330)로 송신할 수 있다. 레이블링 프로젝트는 프로젝트에 할당된 총포인트 정보를 포함할 수 있다. 총포인트 정보는 수요자 단말기(320)로부터 수신될 수 있다.Also, the
서버(330)는 적어도 하나의 프로젝트 참여자의 단말기로부터 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계(1130)를 수행할 수 있다. 서버(330)는 참여자의 단말기로부터 수신된 복수의 분석 대상 데이터에 대해서서 검수를 할 수 있다. 예를 들어, 서버(330)는 복수의 참여자 단말기로부터 하나의 분석 대상 데이터에 대한 레이블 정보를 수신할 수 있다. 복수의 참여자 단말기는 홀수일 수 있다. 서버(330)는 참여자 단말기로부터 더 많이 선택된 레이블 정보를 실제 레이블 정보로 결정할 수 있다. 또한, 서버(330)는 참여자 단말기들 중 임계비율 이상 선택된 레이블 정보를 실제 레이블 정보로 결정할 수 있다. 임계비율은 미리 결정된 값일 수 있다. 서버(330)는 실제 레이블 정보를 결정할 수 없을 때, 다른 복수의 참여자 단말기에게 해당 분석 대상 데이터에 대한 레이블 정보를 달아줄 것을 요청할 수 있다.The
서버(330)는 복수의 분석 대상 데이터의 개수 중 프로젝트 참여자 단말기가 송신한 복수의 레이블 정보의 개수의 비율에 기초하여 포인트를 지급할 수 있다. 예를 들어 참여자 단말기에 아래와 같은 수식에 의한 포인트가 지급될 수 있다.The
P = T * (n-a)/MP = T * (n-a)/M
여기서 P는 프로젝트 참여자에게 지급될 포인트이고, T 는 총포인트이고, n은 참여자 단말기가 송신한 복수의 레이블 정보의 개수이고, M은 복수의 분석 대상 데이터의 개수일 수 있다. 또한 a는 참여자 단말기가 송신한 복수의 레이블 정보 중 실제 레이블 정보로 결정되지 않은 레이블 정보의 수일 수 있다. 포인트는 현금에 비례한 가지를 가질 수 있다. 서버(330)는 포인트의 양에 기반하여 참여자에게 현금을 지급할 수 있다.Here, P may be the points to be paid to project participants, T may be the total points, n may be the number of pieces of label information transmitted by the participant terminals, and M may be the number of pieces of data to be analyzed. Also, a may be the number of label information that is not determined as actual label information among a plurality of label information transmitted by the participant terminal. Points can have branches proportional to cash. The
도 12은 본 개시의 일 실시예에 따라 참여자 단말기에서 표시될 수 있는 화면을 나타낸 도면이다.12 is a diagram illustrating a screen that may be displayed in a participant terminal according to an embodiment of the present disclosure.
참여자 단말기의 화면(1210)의 제 9 영역(1211)에는 영상이 표시될 수 있다. 영상은 서버(330)로부터 수신될 수 있다. 영상은 수요자 단말기(320)가 서버(330)에 제공한 데이터일 수 있다. 제 9 영역(1211)에 표시된 영상은 분석 대상 데이터에 포함될 수 있다. An image may be displayed in the
또한 참여자 단말기의 제 10영역(1212)에는 선택 가능한 레이블 정보가 포함될 수 있다. 선택 가능한 레이블 정보는 클래스 정보일 수 있다. 선택 가능한 레이블 정보는 서버(330)로부터 수신될 수 있다. 선택 가능한 레이블 정보는 수요자 단말기(320)가 서버(330)에 제공한 데이터일 수 있다. 참여자 단말기는 참여자의 입력에 기초하여 선택 가능한 레이블 정보 중 하나를 선택할 수 있다. 레이블 정보는 영상에 나타낸 물체의 종류일 수 있다.In addition, selectable label information may be included in the
참여자 단말기의 화면(1220)의 제 11영역(1221)에는 영상이 표시될 수 있다. 또한 참여자 단말기의 제 12영역(1222)에는 선택 가능한 레이블 정보가 포함될 수 있다. 레이블 정보는 영상에 나타낸 물체의 동작 묘사일 수 있다.An image may be displayed in the
참여자 단말기의 제 13 영역(1231)에는 영상이 표시될 수 있다. 또한 참여자는 특정 물체의 위치를 지정할 수 있다. 예를 들어 참여자 단말기는 참여자의 입력에 기초하여 제 14 영역(1232) 및 제 15 영역(1233)에 특정 물체가 위치하는 것으로 결정할 수 있다. An image may be displayed in the
서버(330)는 참여자 단말기로부터 수신한 정보를 분석 대상 데이터에 대한 레이블 정보를 저장할 수 있다. 또한 서버(330)는 참여자 단말기에 포인트를 지급할 수 있다. 또한 수요자 단말기(320)는 복수의 분석 대상 데이터 및 복수의 레이블 정보에 기초하여 기계학습모델을 재학습시키거나 기계학습모델을 동작시킬 수 있다.The
이제까지 다양한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, various embodiments have been mainly looked at. Those of ordinary skill in the art to which the present invention pertains will understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments are to be considered in an illustrative rather than a restrictive sense. The scope of the present invention is indicated in the claims rather than the foregoing description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (eg, a ROM, a floppy disk, a hard disk, etc.) and an optically readable medium (eg, a CD-ROM, a DVD, etc.).
Claims (10)
상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계;
상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계;
상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계;
상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하는 단계; 및
상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
Receiving registration information related to the machine learning model from the provider terminal;
receiving the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the provider terminal;
applying the test data set to the test code to obtain a test result;
approving the machine learning model based on the test result;
when the machine learning model is approved, performing watermarking to obtain watermarking result information; and
and storing registration information related to the machine learning model, the machine learning model, the test code, the test data set, and the watermarking result information in a database.
상기 워터마킹 결과정보를 획득하는 단계는,
워터마크 이미지 및 상기 워터마크 이미지에 대한 레이블을 획득하는 단계;
상기 기계학습모델은 상기 워터마크 이미지 및 상기 워터마크 이미지에 대한 레이블에 기초하여 추가적으로 학습되는 단계; 및
상기 기계학습모델에 상기 워터마크 이미지를 적용하여 워터마킹 결과정보를 획득하는 단계를 포함하는 서버의 동작 방법.
The method of claim 1,
The step of obtaining the watermarking result information comprises:
obtaining a watermark image and a label for the watermark image;
further learning the machine learning model based on the watermark image and a label for the watermark image; and
and obtaining watermarking result information by applying the watermark image to the machine learning model.
수요자 단말기의 요청에 따라 상기 기계학습모델과 관련된 등록 정보를 상기 수요자 단말기로 송신하는 단계;
상기 수요자 단말기로부터 선택된 기계학습모델에 대한 식별 정보를 수신하는 단계;
상기 선택된 기계학습모델을 상기 수요자 단말기로 송신하는 단계;
상기 선택된 기계학습모델에 대한 워터마크 이미지 및 워터마킹 결과정보를 상기 수요자 단말기로 송신하는 단계; 및
상기 수요자 단말기에서 상기 선택된 기계학습모델에 대한 워터마크 이미지를 상기 선택된 기계학습모델에 적용하여 워터마킹 확인정보를 생성하고, 상기 선택된 기계학습모델에 대한 워터마킹 결과정보 및 상기 워터마킹 확인정보가 일치하는지 여부에 대한 정보를 상기 수요자 단말기로부터 수신하는 단계를 포함하는 서버의 동작 방법.
3. The method of claim 2,
transmitting registration information related to the machine learning model to the consumer terminal at the request of the consumer terminal;
receiving identification information on the selected machine learning model from the consumer terminal;
transmitting the selected machine learning model to the consumer terminal;
transmitting a watermark image and watermarking result information for the selected machine learning model to the consumer terminal; and
The consumer terminal applies the watermark image for the selected machine learning model to the selected machine learning model to generate watermarking confirmation information, and the watermarking result information for the selected machine learning model and the watermarking confirmation information match Method of operation of a server comprising the step of receiving information on whether or not to do so from the consumer terminal.
상기 수요자 단말기로부터 상기 선택된 기계학습모델에 대한 튜닝 요청 정보를 수신하는 단계;
상기 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 상기 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 상기 수요자 단말기에 데이터 세트를 요청하는 단계;
상기 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트를 포함하는 데이터 세트를 수신하는 단계;
상기 선택된 기계학습모델을 상기 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계; 및
상기 튜닝된 기계학습모델에 상기 튜닝용 테스트 데이터 세트를 적용하여 상기 튜닝된 기계학습모델에 대한 정확도를 획득하는 단계를 포함하는 서버의 동작 방법.
4. The method of claim 3,
receiving tuning request information for the selected machine learning model from the consumer terminal;
requesting a data set from the consumer terminal when the information on whether the selected machine learning model is tunable indicates that the selected machine learning model is tunable;
receiving a data set including a training data set and a tuning test data set from the consumer terminal;
generating a tuned machine learning model by re-learning the selected machine learning model based on the training data set; and
and acquiring accuracy for the tuned machine learning model by applying the tuning test data set to the tuned machine learning model.
상기 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계; 및
상기 튜닝된 기계학습모델과 관련된 등록 정보, 상기 튜닝된 기계학습모델, 튜닝된 테스트 코드, 상기 튜닝용 테스트 데이터 세트, 상기 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
5. The method of claim 4,
performing watermarking on the tuned machine learning model to obtain tuned watermarking result information; and
Registering information related to the tuned machine learning model, the tuned machine learning model, the tuned test code, the test data set for tuning, and the step of storing the tuned watermarking result information in a database Operation method of a server .
상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
6. The method of claim 5,
receiving a plurality of analysis target data and labeling request information from the consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
상기 선택된 기계학습모델에 대한 튜닝 가능 여부에 대한 정보가 상기 선택된 기계학습모델의 튜닝 가능을 나타내는 경우, 상기 수요자 단말기에 데이터 세트를 요청하는 단계;
상기 수요자 단말기로부터 학습 데이터 세트 및 튜닝용 테스트 데이터 세트 중 적어도 하나를 포함하는 데이터 세트를 수신하는 단계;
상기 선택된 기계학습모델을 상기 학습 데이터 세트에 기초하여 재학습하여 튜닝된 기계학습모델을 생성하는 단계;
상기 튜닝된 기계학습모델에 대해 워터마킹을 수행하여 튜닝된 워터마킹 결과정보를 획득하는 단계; 및
상기 튜닝된 기계학습모델과 관련된 등록 정보, 상기 튜닝된 기계학습모델, 튜닝된 테스트 코드, 상기 튜닝용 테스트 데이터 세트, 상기 튜닝된 워터마킹 결과정보를 데이터베이스에 저장하는 단계를 포함하는 서버의 동작 방법.
Receiving tuning request information for the selected machine learning model from the consumer terminal;
requesting a data set from the consumer terminal when the information on whether the selected machine learning model is tunable indicates that the selected machine learning model is tunable;
receiving a data set including at least one of a training data set and a tuning test data set from the consumer terminal;
generating a tuned machine learning model by re-learning the selected machine learning model based on the training data set;
performing watermarking on the tuned machine learning model to obtain tuned watermarking result information; and
Registering information related to the tuned machine learning model, the tuned machine learning model, the tuned test code, the test data set for tuning, and the step of storing the tuned watermarking result information in a database Operation method of a server .
상기 수요자 단말기로부터 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
8. The method of claim 7,
receiving a plurality of analysis target data and labeling request information from the consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하는 단계;
상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하는 단계;
상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하는 단계;
수요자 단말기로부터 상기 기계학습모델에 사용하기 위한 복수의 분석 대상 데이터 및 레이블링 요청 정보를 수신하는 단계;
상기 레이블링 요청 정보에 대응하여 상기 복수의 분석 대상 데이터에 대한 레이블링 프로젝트를 생성하는 단계; 및
적어도 하나의 프로젝트 참여자의 단말기로부터 상기 복수의 분석 대상 데이터에 각각 대응하는 복수의 레이블 정보를 수신하는 단계를 포함하는 서버의 동작 방법.
Receiving registration information related to the machine learning model from the provider terminal;
receiving the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the provider terminal;
applying the test data set to the test code to obtain a test result;
approving the machine learning model based on the test result;
receiving a plurality of analysis target data and labeling request information for use in the machine learning model from a consumer terminal;
generating a labeling project for the plurality of analysis target data in response to the labeling request information; and
Method of operating a server comprising the step of receiving a plurality of label information respectively corresponding to the plurality of analysis target data from the terminals of at least one project participant.
상기 프로세서는 상기 메모리에 저장된 명령어에 기초하여,
공급자 단말기로부터 기계학습모델과 관련된 등록 정보를 수신하고, 상기 공급자 단말기로부터 상기 기계학습모델, 상기 기계학습모델에 대한 테스트 코드, 및 상기 기계학습모델에 대한 테스트 데이터 세트를 수신하고, 상기 테스트 데이터 세트를 상기 테스트 코드에 적용하여 테스트 결과를 획득하고, 상기 테스트 결과에 기초하여 상기 기계학습모델을 승인하고, 상기 기계학습모델이 승인된 경우, 워터마킹을 수행하여 워터마킹 결과정보를 획득하고, 상기 기계학습모델과 관련된 등록 정보, 상기 기계학습모델, 상기 테스트 코드, 상기 테스트 데이터 세트, 상기 워터마킹 결과정보를 데이터베이스에 저장하는 서버.A server for sharing a machine learning model includes a processor and memory,
The processor based on the instructions stored in the memory,
Receive registration information related to a machine learning model from a supplier terminal, receive the machine learning model, a test code for the machine learning model, and a test data set for the machine learning model from the supplier terminal, and the test data set is applied to the test code to obtain a test result, and the machine learning model is approved based on the test result, and when the machine learning model is approved, watermarking is performed to obtain watermarking result information, and the A server for storing registration information related to a machine learning model, the machine learning model, the test code, the test data set, and the watermarking result information in a database.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200107159A KR102453673B1 (en) | 2020-08-25 | 2020-08-25 | System for sharing or selling machine learning model and operating method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200107159A KR102453673B1 (en) | 2020-08-25 | 2020-08-25 | System for sharing or selling machine learning model and operating method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220026647A true KR20220026647A (en) | 2022-03-07 |
KR102453673B1 KR102453673B1 (en) | 2022-10-13 |
Family
ID=80817489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200107159A KR102453673B1 (en) | 2020-08-25 | 2020-08-25 | System for sharing or selling machine learning model and operating method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102453673B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102033136B1 (en) | 2019-04-03 | 2019-10-16 | 주식회사 루닛 | Method for machine learning based on semi-supervised learning and apparatus thereof |
KR20200015048A (en) | 2018-08-02 | 2020-02-12 | 삼성전자주식회사 | Method and apparatus for selecting model of machine learning based on meta-learning |
KR102099019B1 (en) | 2018-10-12 | 2020-04-08 | 서울대학교산학협력단 | Identifying method of user based on generative model for watermark and watermarking method based on generative model |
CN111260071A (en) | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | Method, device and storage medium for analyzing universal machine learning model file |
-
2020
- 2020-08-25 KR KR1020200107159A patent/KR102453673B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200015048A (en) | 2018-08-02 | 2020-02-12 | 삼성전자주식회사 | Method and apparatus for selecting model of machine learning based on meta-learning |
KR102099019B1 (en) | 2018-10-12 | 2020-04-08 | 서울대학교산학협력단 | Identifying method of user based on generative model for watermark and watermarking method based on generative model |
CN111260071A (en) | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | Method, device and storage medium for analyzing universal machine learning model file |
KR102033136B1 (en) | 2019-04-03 | 2019-10-16 | 주식회사 루닛 | Method for machine learning based on semi-supervised learning and apparatus thereof |
Also Published As
Publication number | Publication date |
---|---|
KR102453673B1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019216644B2 (en) | Automation and digitizalization of document processing systems | |
US11682093B2 (en) | Document term recognition and analytics | |
KR102066371B1 (en) | Agency matching method, apparatus and program based on block chain | |
US10360631B1 (en) | Utilizing artificial intelligence to make a prediction about an entity based on user sentiment and transaction history | |
CN113508378A (en) | Recommendation model training method, recommendation device and computer readable medium | |
CN109983491B (en) | Method and apparatus for applying artificial intelligence to money collection by using voice input | |
CN108431854A (en) | Detect junk information publication | |
CN106407999A (en) | Rule combined machine learning method and system | |
US20210350393A1 (en) | Behavioral data analytics platform | |
US20210191988A1 (en) | Summarized logical forms for controlled question answering | |
Artasanchez et al. | Artificial Intelligence with Python: Your complete guide to building intelligent apps using Python 3. x | |
JP2013058192A (en) | System, method and computer program product for parcel assessment | |
KR102384728B1 (en) | Method and system for outputting producer-centric auction price in reverse of agricultural product based on auction price of producing area | |
US20230093756A1 (en) | Systems and methods for generating recommendations | |
CN113781149A (en) | Information recommendation method and device, computer-readable storage medium and electronic equipment | |
KR20200127810A (en) | Method for automatically estimatimg transaction value of used goods and computing device for executing the method | |
García-Magariño et al. | Estimation of missing prices in real-estate market agent-based simulations with machine learning and dimensionality reduction methods | |
CN115456707A (en) | Method and device for providing commodity recommendation information and electronic equipment | |
US10922633B2 (en) | Utilizing econometric and machine learning models to maximize total returns for an entity | |
EP3965050A1 (en) | Systems and methods for deriving rating for properties | |
JP7417597B2 (en) | Probabilistic item matching and search | |
KR102453673B1 (en) | System for sharing or selling machine learning model and operating method thereof | |
KR102370650B1 (en) | real estate investment curation system based on artificial neural network and method therefor | |
Van Dinther | Adaptive bidding in single-sided auctions under uncertainty: an agent-based approach in market engineering | |
US10860593B1 (en) | Methods and systems for ranking leads based on given characteristics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |