KR20220116535A - 수정된 데이터에 기초한 머신 러닝 모델 그리고 이를 트레이닝 및 사용하기 위한 시스템 및 방법 - Google Patents

수정된 데이터에 기초한 머신 러닝 모델 그리고 이를 트레이닝 및 사용하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220116535A
KR20220116535A KR1020227025041A KR20227025041A KR20220116535A KR 20220116535 A KR20220116535 A KR 20220116535A KR 1020227025041 A KR1020227025041 A KR 1020227025041A KR 20227025041 A KR20227025041 A KR 20227025041A KR 20220116535 A KR20220116535 A KR 20220116535A
Authority
KR
South Korea
Prior art keywords
value
data
machine learning
learning model
examples
Prior art date
Application number
KR1020227025041A
Other languages
English (en)
Inventor
드미트리 벤거트시브
자흐라 호세이니마카렘
조나단 디. 함스
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20220116535A publication Critical patent/KR20220116535A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • G06N3/0472
    • G06N3/0481
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Abstract

데이터는 트레이닝을 위해 머신 러닝 모델로 제공되기 이전에 추상화 및/또는 마스킹될 수도 있다. 머신 러닝 모델은 결과와 관련되는 신뢰도 레벨을 제공할 수도 있다. 신뢰도 레벨이 너무 높으면, 머신 러닝 모델 또는 머신 러닝 모델을 포함하는 애플리케이션은 결과를 출력으로서 제공하는 것을 삼갈 수도 있다. 몇몇 예에서, 머신 러닝 모델은 수용 가능한 신뢰도 레벨을 갖는 "두 번째로 가장 좋은" 결과를 제공할 수도 있다. 다른 예에서, 에러 신호가 출력으로서 제공될 수도 있다. 본 개시내용의 예에 따르면, 데이터는 트레이닝을 위해 머신 러닝 모델로 제공되기 이전에 추상화 및/또는 마스킹될 수도 있고 트레이닝된 머신 러닝 모델의 결과의 신뢰도 레벨은, 결과가 보류되어야 하는 때를 결정하기 위해 사용될 수도 있다.

Description

수정된 데이터에 기초한 머신 러닝 모델 그리고 이를 트레이닝 및 사용하기 위한 시스템 및 방법
관련 출원(들)에 대한 상호 참조
본 출원은 2019년 12월 30일자로 출원된 미국 가출원 번호 제62/955,297호 및 2020년 4월 21일자로 출원된 미국 출원 번호 제16/854,107호에 대한 우선권을 주장한다. 전술한 출원은 임의의 모든 목적을 위해 그들 전체가 참조에 의해 본 명세서에 원용된다.
머신 러닝은 일반적으로 데이터를 분류하기 위해 또는 다르게는 데이터로부터 의미를 추론하기 위해 하나 이상의 계산 모델을 활용하기 위한 다양한 방법을 포괄한다. 모델의 예는 인공 신경망(깊고 얕은, 컨볼루션, 순환, 확률 그래픽 모델, 베이지안(Bayesian) 신경망 등), 의사 결정 트리 기반의 방법 및, 커널화된(Kernelized를) 버전을 비롯한, 서포트 벡터 머신이 포함하지만, 그러나 이들로 제한되지는 않는다. 몇몇 경우에, 모델은 하나 이상의 알고리즘 및 다양한 네트워크 아키텍처를 포함할 수도 있다. 통상적으로, 모델을 트레이닝시키는 것은 트레이닝 데이터 세트를 제공시키는 것을 포함한다. 컴퓨팅 디바이스는 모델을 개발하기 위해 트레이닝 데이터 세트를 분석한다. 트레이닝된 모델은, 그 다음, 조회에 응답하여 출력을 제공하는 것과 같은 하나 이상의 태스크를 완료하기 위해 새로운 데이터 세트를 분석하기 위해(동일한 컴퓨팅 디바이스 또는 다른 컴퓨팅 디바이스에 의해) 사용될 수도 있다. 트레이닝은 감독될(supervised) 수도 있거나 또는 자율적(unsupervised)일 수도 있거나 또는 반 감독될(semi-supervised) 수도 있다. 몇몇 경우에, 모델은 초기 트레이닝 이후 수신되는 추가적인 데이터에 기초하여 시간이 지남에 따라 계속 트레이닝 및/또는 수정될 수도 있는데, 동적으로 트레이닝된 모델로 지칭될 수도 있다.
몇몇 애플리케이션에서, 트레이닝 데이터 및/또는 추가적인 데이터는 민감한 정보(예를 들면, 개인 식별 정보, 금융 정보, 독점적 비즈니스 정보)를 포함할 수도 있다. 민감한 정보를 공개하는 것은, 개인 또는 엔티티에게 피해(예를 들면, 신분 도용)를 야기할 수도 있다. 따라서, 모델로 제공되는 트레이닝 데이터 및/또는 추가적인 데이터에서 민감한 정보의 노출되는 것을 방지하는 것이 바람직할 수도 있다.
본 개시내용의 적어도 하나의 예에 따르면, 장치는, 프로세서 및 다른 디바이스로부터 수신되는 입력을 저장하도록 구성되는 비일시적 컴퓨터 판독 가능 매체를 포함할 수도 있는데, 비일시적 컴퓨터 판독 가능 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 입력으로부터, 머신 러닝 모델을 사용하여, 결과를 나타내는 제1 값 및 신뢰도 레벨을 나타내는 제2 값을 생성하게 하고, 제2 값을 임계값과 비교하게 하고(여기서, 임계값은 머신 러닝 모델을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트로부터 기억되는 제3 값을 포함하는 제1 값을 나타냄), 그리고 그 비교에 기초하여 출력을 다른 디바이스로 제공하게 하는 명령어로 인코딩된다.
본 개시내용의 적어도 하나의 예에 따르면, 방법은, 데이터 입력을 수신하는 것, 데이터 입력으로부터, 머신 러닝 모델을 사용하여, 결과를 나타내는 제1 값 및 신뢰도 레벨을 나타내는 제2 값을 생성하는 단계, 제2 값을 임계값과 비교하는 단계(여기서, 임계값은 머신 러닝 모델을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트로부터 기억되는 제3 값을 포함하는 제1 값을 나타냄) 및 비교에 기초하여 출력을 제공하는 단계를 포함할 수도 있다.
본 개시내용의 적어도 하나의 예에 따르면, 장치는 프로세서, 및 데이터를 저장하도록 구성되는 비일시적 컴퓨터 판독 가능 매체를 포함할 수도 있는데, 비일시적 컴퓨터 판독 가능 매체는, 프로세서에 의해 실행될 때, 프로세서로 하여금, 순위(rank)를 나타내는 제1 값을 생성하게 하고(여기서, 제1 값은 하나 이상의 값이 데이터에 포함되는 횟수를 나타냄), 분류를 나타내는 제2 값을 생성하게 하고(여기서, 제2 값은 데이터에 포함되는 하나 이상의 데이터 타입을 나타냄), 제1 값 및 제2 값에 기초하여 데이터에 포함되는 하나 이상의 값 중 하나의 값을 변경하게 하고, 그리고 변경된 값을 포함하는 데이터를 포함하는 트레이닝 데이터 세트를 생성하게 하는 명령어로 인코딩된다.
본 개시내용의 적어도 하나의 예에 따르면, 방법은, 데이터를 수신하는 단계, 순위를 나타내는 제1 값을 생성하는 단계(여기서, 제1 값은 하나 이상의 값이 데이터에 포함되는 횟수를 나타냄), 분류를 나타내는 제2 값을 생성하는 단계(여기서, 제2 값은 데이터에 포함되는 하나 이상의 데이터 타입을 나타냄), 제1 값 및 제2 값에 기초하여 데이터에 포함되는 하나 이상의 값 중 하나의 값을 변경하는 단계 및 변경되는 값을 포함하는 데이터를 포함하는 트레이닝 데이터 세트를 생성하는 단계를 포함할 수도 있다.
도 1a는 이미지에 대한 설명 텍스트 캡션(descriptive text caption)을 제공하도록 트레이닝된 머신 러닝 모델의 예를 예시한다.
도 1b는 음성 입력(speech input)에 대한 텍스트 출력을 제공하도록 트레이닝된 머신 러닝 모델의 예를 예시한다.
도 2는 본 개시내용의 예에 따라 배열되는 컴퓨팅 디바이스의 개략적인 예시이다.
도 3은 본 개시내용의 예에 따른 데이터를 추상화 및/또는 마스킹하기 위한 머신 러닝 애플리케이션의 기능 블록도이다.
도 4는 본 개시내용의 예에 따른 데이터를 토큰화하는 예를 도시한다.
도 5는 본 개시내용의 예에 따른 방법의 플로우차트이다.
도 6은 본 개시내용의 예에 따른 출력을 제공하기 위한 머신 러닝 애플리케이션의 기능 블록도이다.
도 7은 본 개시내용의 예에 따른 신경망의 다이어그램이다.
도 8은 본 개시내용의 예에 따른 신경망 및 출력 확률 분포의 예의 다이어그램이다.
도 9는 본 개시내용의 예에 따른 방법의 플로우차트이다.
도 10은 본 개시내용의 예에 따른 컴퓨팅 시스템이다.
민감한 데이터는 머신 러닝 애플리케이션의 모델을 트레이닝시키기 위해 제공되는 트레이닝 데이터에 및/또는 동적으로 트레이닝된 모델로 제공되는 다른 데이터에 포함될 수도 있다. 모델이 트레이닝 세트 및/또는 다른 데이터에 기초하여 데이터를 분류하도록 또는 다르게는 데이터로부터 의미를 추론하도록 트레이닝되지만, 몇몇 경우에, 트레이닝의 방법 및/또는 트레이닝 세트의 콘텐츠에 기인하여, 모델은 트레이닝 세트로부터의 데이터를 "기억"할 수도 있다. 이들 경우에, 모델은 모델로의 데이터 입력에 기초하여 결정된 분류 또는 추론에 응답하여 기억된 데이터를 출력할 수도 있다. 몇몇 경우에, 기억된 데이터는 공개되지 않아야 하는 민감한 데이터일 수도 있다. 몇몇 경우에, 기억된 데이터는 트레이닝 데이터가 획득되었던 사용자의 개인 정보일 수도 있고 그리고/또는 기억된 데이터는 모델, 모델이 트레이닝되었던 방법, 및/또는 트레이닝 데이터 세트의 콘텐츠를 리버스 엔지니어링하려고 시도하는 경쟁자에게 단서를 제공할 수도 있다. 따라서, 더 많은 프라이버시 인식 성능을 갖는 머신 러닝 모델 및/또는 애플리케이션이 요망된다.
도 1a는 이미지에 대한 설명 텍스트 캡션을 제공하도록 트레이닝된 머신 러닝 모델(102)의 예를 예시한다. 머신 러닝 모델(102)은 이미지 입력에 대한 텍스트 출력을 제공하도록 트레이닝된다. 트레이닝은 이미지에 포함되는 엘리먼트를 설명했던 텍스트 캡션(예를 들면, 목적하는 결과)과 함께 수백 또는 수천 개의 이미지(예를 들면, 입력)를 포함하는 트레이닝 데이터 세트를 제공하는 것을 포함했을 수도 있다. 트레이닝 데이터 세트에 기초하여 머신 러닝 모델은 이미지의 다양한 엘리먼트를 인식하고 그들 엘리먼트와 관련되는 텍스트를 제공할 수 있게 될 수도 있다. 몇몇 예에서, 머신 러닝 모델은 신경망을 포함할 수도 있다.
도 1a에서 도시되는 제1 예에서, 이미지(100)는 트레이닝된 머신 러닝 모델(102)로 제공된다. 머신 러닝 모델(102)은 이미지(100)를 분석하고 결과로서 캡션(104) "산으로 이어지는 길(roads leading to mountains)"을 제공한다. 제2 예에서, 이미지(110)는 머신 러닝 모델(102)로 제공된다. 모델은 이미지(110)를 분석하고 캡션(114) "랩탑, 안경, 컵 및 패스워드 1p5x3c9r가 적힌 스티키 노트를 갖는 번잡한 책상"을 제공한다.
제1 예에서, 머신 러닝 모델(102)은 이미지(100)의 콘텐츠를 반영하는, 그러나 많은 다른 이미지를 또한 설명할 가능성이 있는 캡션(104)을 제공한다. 제2 예에서, 머신 러닝 모델(102)은 이미지(110)의 콘텐츠를 반영하는 캡션(114)을 제공하지만, 그러나 캡션(114)은 이미지(110)를 더욱 상세하게 설명하고 다른 이미지를 설명할 가능성이 더 적다. 트레이닝 데이터 세트가 캡션(114)에서 설명되는 다른 엘리먼트를 갖는 책상의 이미지를 거의 포함하지 않았을 가능성이 있다는 것이 캡션(114)으로부터 추론될 수도 있다. 이 경우, 머신 러닝 모델(102)은 트레이닝 이미지 및/또는 그것의 관련된 캡션을 기억했을 수도 있다. 몇몇 경우에, 이미지(110)가 트레이닝 데이터 세트에 포함되었다는 것이 추론될 수도 있다. 머신 러닝 모델(102)의 결과의 이 분석은, 사용자가, 트레이닝 데이터 세트의 특성 및/또는 콘텐츠를 결정하는 것 및/또는 머신 러닝 모델(102)이 트레이닝되었던 방법을 결정하는 것을 허용할 수도 있다.
더구나, 캡션(114)은 패스워드를 포함한다. 패스워드는 몇몇 예에서 트레이닝 데이터 세트의 이미지 내에 있었을 수도 있다. 몇몇 경우에, 패스워드는 머신 러닝 모델(102)의 결과로서 제공되기에 바람직하지 않은 민감한 정보일 수도 있다.
도 1b는 음성 입력(120)에 응답하여 텍스트 출력(132)을 제공하도록 트레이닝된 머신 러닝 모델(122)의 예를 예시한다. 도 1b에서 도시되는 바와 같이, 사용자는 "마가렛의 집으로 가는 최적의 경로를 제공해줘(Please provide the best route to Margaret's house)"와 같은 음성 입력(120)을 컴퓨팅 디바이스에게 제공할 수도 있다. 음성 입력(120)으로부터의 음파는 컴퓨팅 디바이스와 함께 포함되는 스피커에 의해 수신될 수도 있고, 컴퓨팅 디바이스는 음파에 응답하는 신호(예를 들면, 디지털 신호)를 컴퓨팅 디바이스 상에 포함될 수도 있고 그리고/또는 컴퓨팅 디바이스와 통신하는 클라우드 컴퓨팅 시스템 상에 있을 수도 있는 머신 러닝 모델(122)로 제공할 수도 있다. 블록(124)에서 도시되는 바와 같이, 머신 러닝 모델(122)은 어떤 단어가 발화되었는지를 결정하기 위해 신호로부터 추론을 행할 수도 있다. 일단 블록(126)에 의해 도시되는 바와 같이 단어가 결정되면, 머신 러닝 모델(122)은 블록(128)에서 도시되는 바와 같이 단어로부터 사용자의 의도를 추론할 수도 있다. 비전문가의 관점에서, 머신 러닝 모델(122)은 컴퓨팅 시스템이 무엇을 하기를 사용자가 원하는지를 결정할 수도 있다. 추론된 의도에 기초하여, 머신 러닝 모델(122)은 블록(130)에 의해 도시되는 바와 같이 응답(예를 들면, 출력)을 공식화할(formulate) 수도 있다. 그 다음, 출력은 컴퓨팅 디바이스에 의해, 예컨대 스크린 상에 디스플레이하는 것에 의해, 사용자에게 제공될 수도 있다. 이 예에서, 블록(132)에서 도시되는 바와 같이, 출력은 마가렛의 집으로 가는 방향이다.
머신 러닝 모델(122)의 출력은, 마가렛이 대중에게 공개되어 있는 사업장의 이름이거나 또는 마가렛이 사용자에게 알려져 있는 개인인 경우, 바람직할 수도 있다. 예를 들면, 사용자는 머신 러닝 모델(122)에 의한 분석을 위해 컴퓨팅 디바이스에 그녀 개인의 주소록을 제공했을 수도 있고, 마가렛은 주소록의 연락처일 수도 있다. 그러나, 마가렛이 개인이고 사용자가 알고 있지 않은 경우, 사용자에게 마가렛의 집으로 가는 방향을 제공하는 것은 바람직하지 않을 수도 있다. 이들 경우에, 컴퓨팅 디바이스가 결과를 사용자에게 제공하는 것 및/또는 유사한 소리가 나는 이름(예를 들면, 이 예에서는 "마가리타 헛(Margarita Hut)")을 갖는 대중에게 공개되어 있는 사업장으로 가는 방향과 같은 대안적인 결과를 제공하는 것을 방지하는 것이 바람직할 수도 있다.
도 1a에서 제공되는 예가 이미지 입력 및 텍스트 출력을 제공하고 도 1b에서 제공되는 예가 음성 입력 및 텍스트 출력을 제공하지만, 머신 러닝 기억은 입력 및 결과 둘 다에 대한 텍스트, 입력 및 결과에 대한 음성 데이터, 입력에 대한 음성 데이터 및 결과에 대한 텍스트 데이터 등과 같은 다른 데이터 타입과 함께 발생할 수도 있다. 예를 들면, 텍스트가 입력 및 결과 둘 다일 때, 예컨대 머신 러닝 모델이, 적어도 부분적으로, 사용자가 이미 입력한 문자 또는 단어에 기초하여, 문서(예를 들면, 전자메일)를 타이핑하는 사용자에게 단어 또는 어구를 제안할 때, 발생할 수도 있다. 이 예에서, 사용자는 "제인의 집에서 만나자(Let's meet at Jane's house at)"를 타이핑했을 수도 있고, 머신 러닝 모델이 입력에 기초하여 결과를 기억하였다면, 머신 러닝 모델은 집에 대한 특정한 주소의 제안을 제공할 수도 있다. 이 경우, 특정한 주소 소재의 거주자의 프라이버시는 침해될 수도 있다.
본 개시내용의 예에 따르면, 데이터는 트레이닝을 위해 머신 러닝 모델로 제공되기 이전에 추상화 및/또는 마스킹될 수도 있다. 이것은 머신 러닝 모델의 "프라이버시 인식"을 증가시킬 수도 있고 머신 러닝 모델이 몇몇 애플리케이션에서 민감한 정보를 "기억"하는 것을 감소시킬 수도 있거나 또는 방지할 수도 있다. 본 개시내용의 예에 따르면, 머신 러닝 모델은 결과와 관련되는 신뢰도 레벨을 제공할 수도 있다. 신뢰도 레벨이 너무 높으면, 머신 러닝 모델 또는 머신 러닝 모델을 포함하는 애플리케이션은 결과를 출력으로서 제공하는 것을 삼갈 수도 있다. 몇몇 예에서, 특정한 출력의 신뢰도 레벨이 너무 높으면 어떠한 결과도 제공되지 않을 수도 있다. 다른 예에서, 머신 러닝 모델은 수용 가능한 신뢰도 레벨을 갖는 "두 번째로 가장 좋은" 결과를 제공할 수도 있다. 이 "두 번째로 가장 좋은" 결과는, 민감한 정보를 공개할 가능성이 적다는 점에서 프라이버시를 더 잘 인식할 수도 있다. 여전히 다른 예에서, 에러 신호가 출력으로서 제공될 수도 있다. 본 개시내용의 예에 따르면, 데이터는 트레이닝을 위해 머신 러닝 모델로 제공되기 이전에 추상화 및/또는 마스킹될 수도 있고 트레이닝된 머신 러닝 모델의 결과의 신뢰도 레벨은, 결과가 보류되어야 하는 때를 결정하기 위해 사용될 수도 있다. 머신 러닝 모델을 트레이닝시키기 위해 사용되는 데이터를 프로세싱하는 것 및/또는 소정의 조건 하에서 머신 러닝 모델로부터의 결과를 제공하지 않는 것은, 민감한 데이터의 노출 및/또는 머신 러닝 모델, 트레이닝 방법, 및/또는 트레이닝 데이터의 리버스 엔지니어링을 감소시킬 수도 있거나 또는 방지할 수도 있다.
도 2는 본 개시내용의 예에 따라 배열되는 컴퓨팅 디바이스의 개략적인 예시이다. 컴퓨팅 디바이스(200)는 프로세서(들)(202), 컴퓨터 판독 가능 매체(또는 매체)(204), 메모리 컨트롤러(210), 메모리(212) 및 인터페이스(들)(214)를 포함할 수도 있다. 몇몇 예에서, 컴퓨팅 디바이스(200)는 디스플레이(216)를 포함할 수도 있다.
컴퓨터 판독 가능 매체(204)는 프로세서(들)(202)가 액세스 가능할 수도 있다. 컴퓨터 판독 가능 매체(204)는 실행 가능 명령어(208)로 인코딩될 수도 있다. 실행 가능 명령어(208)는 프로세서(202)에 의해 실행될 수도 있다. 몇몇 예에서, 실행 가능 명령어(208)는, 프로세서(202)로 하여금, 하나 이상의 머신 러닝 모델을 포함하는 머신 러닝 애플리케이션을 구현하게 할 수도 있다. 머신 러닝 애플리케이션은 트레이닝 데이터 세트를 생성하는 것, 머신 러닝 모델을 트레이닝하는 것, 및/또는 트레이닝된 머신 러닝 모델을 수신된 데이터에 적용하여 결과를 생성하는 것과 같은 다양한 기능을 구현할 수도 있다. 대안적으로 또는 추가적으로, 몇몇 예에서, 머신 러닝 애플리케이션, 또는 그 일부는, 컴퓨터 판독 가능 매체(204) 및/또는 프로세서(들)(202), 예를 들면, 주문형 집적 회로(application-specific integrated circuit: ASIC) 및/또는 필드 프로그래머블 게이트 어레이(field programmable gate array: FPGA)와 함께 포함되는 하드웨어로 구현될 수도 있다.
컴퓨터 판독 가능 매체(204)는 데이터(206)를 저장할 수도 있다. 몇몇 예에서, 데이터(206)는 트레이닝 데이터 세트(218)와 같은 하나 이상의 트레이닝 데이터 세트를 포함할 수도 있다. 몇몇 예에서, 트레이닝 데이터 세트(218)는 다른 컴퓨팅 디바이스(예를 들면, 에지 디바이스(222), 클라우드 컴퓨팅 디바이스)로부터 수신될 수도 있다. 다른 예에서, 트레이닝 데이터 세트(218)는 컴퓨팅 디바이스(200)에 의해 생성될 수도 있다. 몇몇 예에서, 트레이닝 데이터 세트는 하나 이상의 머신 러닝 모델을 트레이닝시키기 위해 사용될 수도 있다. 몇몇 예에서, 데이터(206)는 머신 러닝 모델에서 사용되는 데이터(예를 들면, 가중치, 노드 사이의 연결)를 포함할 수도 있다. 몇몇 예에서, 데이터(206)는 새로운 데이터(220)와 같은 다른 데이터를 포함할 수도 있다. 몇몇 예에서, 다른 데이터는 추론을 행하기 위해 트레이닝된 머신 러닝 모델에 의해 분석될 수도 있다(예를 들면, 데이터에 기초하여 결과/출력을 제공함). 몇몇 예에서, 데이터(206)는 컴퓨팅 디바이스(200)에 의해 구현되는 하나 이상의 머신 러닝 모델에 의해 생성되는 출력을 포함할 수도 있다. 컴퓨터 판독 가능 매체(204)는, 비일시적 컴퓨터 판독 가능 매체를 비롯한 임의의 매체를 사용하여 구현될 수도 있다. 예는 메모리, 랜덤 액세스 메모리(random access memory: RAM), 판독 전용 메모리(read only memory: ROM), 휘발성 또는 불휘발성 메모리, 하드 드라이브, 솔리드 스테이트 드라이브, 또는 다른 스토리지를 포함한다. 단일의 매체가 도 2에서 도시되지만, 컴퓨터 판독 가능 매체(204)를 구현하기 위해 다수의 매체가 사용될 수도 있다.
몇몇 예에서, 프로세서(들)(202)는 하나 이상의 중앙 프로세싱 유닛(central processing unit: CPU), 그래픽 프로세싱 유닛(graphical processing unit: GPU), ASIC, FPGA, 또는 다른 프로세서 회로부(circuitry)를 사용하여 구현될 수도 있다. 몇몇 예에서, 프로세서(들)(202)는 실행 가능 명령어(208)의 일부 또는 모두를 실행할 수도 있다. 몇몇 예에서, 프로세서(들)(202)는 메모리 컨트롤러(210)를 통해 메모리(212)와 통신할 수도 있다. 몇몇 예에서, 메모리(212)는 동적 랜덤 액세스 메모리(dynamic random access memory: DRAM)와 같은 휘발성 메모리일 수도 있다. 메모리(212)는, 몇몇 예에서, 메모리 컨트롤러(210)를 통해 프로세서(들)(202) 및/또는 컴퓨터 판독 가능 매체(204)에 정보를 제공할 수도 있고 그리고/또는 그들로부터 정보를 수신할 수도 있다. 단일의 메모리(212) 및 단일의 메모리 컨트롤러(210)가 도시되지만, 임의의 수가 사용될 수도 있다. 몇몇 예에서, 메모리 컨트롤러(210)는 프로세서(들)(202)와 통합될 수도 있다.
몇몇 예에서, 인터페이스(들)(214)는 다른 디바이스(예를 들면, 에지 디바이스(222)), 사용자, 및/또는 네트워크(예를 들면, LAN, WAN, 인터넷)에 통신 인터페이스를 제공할 수도 있다. 인터페이스(들)(214)는 유선 및/또는 무선 인터페이스(예를 들면, Wi-Fi, BlueTooth, HDMI, USB 등)를 사용하여 구현될 수도 있다. 몇몇 예에서, 인터페이스(들)(214)는 사용자로부터 입력을 수신할 수도 있는 사용자 인터페이스 컴포넌트를 포함할 수도 있다. 사용자 인터페이스 컴포넌트의 예는 키보드, 마우스, 터치패드, 터치스크린, 및 마이크를 포함한다. 몇몇 예에서, 인터페이스(들)(214)는, 외부 디바이스(예를 들면, 에지 디바이스(222))와 컴퓨팅 디바이스(200)의 하나 이상의 컴포넌트(예를 들면, 프로세서(202) 및 컴퓨터 판독 가능 매체(204)) 사이에서, 사용자 입력, 데이터(206), 트레이닝 데이터 세트(218), 및/또는 새로운 데이터(220)를 포함할 수도 있는 정보를 전달할 수도 있다.
몇몇 예에서, 컴퓨팅 디바이스(200)는(예를 들면, 유선 및/또는 무선 연결을 사용하여) 별개의 컴포넌트인 디스플레이(216)와 통신할 수도 있거나 또는 디스플레이(216)는 컴퓨팅 디바이스와 통합될 수도 있다. 몇몇 예에서, 디스플레이(216)는 컴퓨팅 디바이스(200)에 의해 구현되는 하나 이상의 머신 러닝 모델에 의해 생성되는 출력과 같은 데이터(206)를 디스플레이할 수도 있다. 하나 이상의 LED, LCD, 플라즈마, 또는 다른 디스플레이 디바이스를 비롯한, 임의의 수 또는 다양한 디스플레이가 존재할 수도 있다.
몇몇 예에서, 트레이닝 데이터 세트(218) 및/또는 새로운 데이터(220)는 인터페이스(214)를 통해 컴퓨팅 디바이스(200)로 제공될 수도 있다. 옵션 사항으로(optionally), 몇몇 예에서, 트레이닝 데이터 세트(218) 및/또는 새로운 데이터(220)의 일부 또는 모두가 에지 디바이스(222)에 의해 컴퓨팅 디바이스(200)로 제공될 수도 있다. 몇몇 예에서, 컴퓨팅 디바이스(200)는 결과, 예컨대 머신 러닝 애플리케이션에 의해 만들어지는 추론을 에지 디바이스(222)로 제공할 수도 있다. 몇몇 예에서, 에지 디바이스(222)는 또한, 컴퓨팅 디바이스(200)에서 도시되는 컴포넌트와 유사한 컴포넌트를 포함하는 컴퓨팅 디바이스일 수도 있다. 몇몇 예에서, 에지 디바이스(222)는 스마트폰 또는 태블릿과 같은 모바일 디바이스일 수도 있다. 몇몇 예에서, 에지 디바이스(222)는 데스크탑 컴퓨터 또는 다른 고정식 디바이스일 수도 있다. 몇몇 예에서, 에지 디바이스(222) 및 컴퓨팅 디바이스(200)는 클라우드 컴퓨팅 시스템과 같은 컴퓨팅 시스템에 포함될 수도 있다. 이 예에서, 컴퓨팅 디바이스(200)는 클라우드 컴퓨팅 디바이스일 수도 있다. 몇몇 예에서, 컴퓨팅 디바이스(200)는 서버에 포함될 수도 있다.
몇몇 예에서, 컴퓨팅 디바이스(200)는 민감한 정보를 마스킹 및/또는 추상화하기 위해 데이터(예를 들면, 데이터(206), 트레이닝 데이터 세트(218), 및/또는 새로운 데이터(220))를 프로세싱할 수도 있다. 프로세싱된 데이터는 머신 러닝 모델(예를 들면, 신경망, 서포트 벡터 머신, 결정 트리)을 트레이닝시키기 위한 트레이닝 세트를 생성하기 위해 사용될 수도 있다. 몇몇 예에서, 머신 러닝 모델은 컴퓨팅 디바이스(200)에 의해 트레이닝될 수도 있다. 몇몇 예에서, 트레이닝된 머신 러닝 모델은 컴퓨팅 디바이스(200)에 의해 구현될 수도 있고 그리고/또는 컴퓨팅 디바이스(200)는 하나 이상의 다른 트레이닝된 머신 러닝 모델을 구현할 수도 있다.
몇몇 예에서, 컴퓨팅 디바이스(200)는 입력(예를 들면, 새로운 데이터(220)와 같은 데이터)에 기초한 결과(추론으로서 또한 지칭됨)뿐만 아니라 결과와 관련되는 신뢰도 레벨을 제공하는 머신 러닝 모델을 구현할 수도 있다. 머신 러닝 모델 및/또는 컴퓨팅 디바이스(200)의 다른 컴포넌트는 결과와 관련되는 신뢰도 레벨에 기초하여 출력을 제공할 수도 있다. 예를 들면, 신뢰도 레벨이 임계치 이상인 경우, 그것은 머신 러닝 모델이 트레이닝 데이터 세트로부터의 결과를 "기억"했다는 것을 암시할 수도 있다. 이 경우, 출력은 결과를 포함하지 않을 수도 있다. 몇몇 예에서, 컴퓨팅 디바이스(200)는, 수용 가능한 값(예를 들면, 임계값 이하)을 갖는 신뢰도 레벨을 갖는 상이한 결과(예컨대, 두 번째로 가장 높은 신뢰도 레벨을 갖는 결과)를 머신 러닝 모델로부터 출력할 수도 있고 이 결과를 출력으로서 제공할 수도 있다. 몇몇 예에서, 출력은 에러 신호를 포함할 수도 있다.
도 3은 본 개시내용의 예에 따라 데이터를 추상화 및/또는 마스킹하기 위한 머신 러닝 애플리케이션(300)의 기능 블록도이다. 몇몇 예에서, 머신 러닝 애플리케이션(300)은 컴퓨터 판독 가능 명령어에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(300)은 FPGA 및/또는 ASIC와 같은 하드웨어에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(300)은 컴퓨터 판독 가능 명령어 및 하드웨어의 조합에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(300)은 도 2에서 도시되는 컴퓨팅 디바이스(200)에 의해 구현될 수도 있다.
머신 러닝 애플리케이션(300)은 트레이닝 데이터 세트(302)를 포함할 수도 있다. 트레이닝 데이터 세트(302)는, 대응하는 결과(Y)(306)와 각각 관련되는 하나 이상의 입력(X)(304)을 포함할 수도 있다. 몇몇 예에서, 트레이닝 데이터 세트(302)는 사전 존재할 수도 있다. 다른 예에서, 머신 러닝 애플리케이션(300)은 수신된 데이터(322)로부터 트레이닝 데이터 세트(302)를 생성할 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(300)은 수신된 데이터(322)를 토큰화하는 것에 의해 트레이닝 데이터를 생성할 수도 있는데, 이것은 도 4를 참조하여 더욱 상세하게 설명된다. 몇몇 예에서, 데이터(322)는 머신 러닝 애플리케이션을 구현하는 컴퓨팅 디바이스와 함께 포함되는 컴퓨터 판독 가능 매체로부터 수신될 수도 있다. 몇몇 예에서, 데이터(322)는 에지 디바이스(222)와 같은 다른 컴퓨팅 디바이스에 의해 구현되는 애플리케이션(320)으로부터 수신될 수도 있다.
머신 러닝 애플리케이션(300)은 민감한 데이터를 추상화 및/또는 마스킹하도록 트레이닝 데이터 세트(302)를 프로세싱할 수도 있고 수정된 트레이닝 데이터 세트(310)를 생성할 수도 있다. 본 명세서에서 사용되는 바와 같이, 데이터를 추상화하는 것은, 데이터 타입의 특정한 값을 일반 값으로 대체하는 것을 의미한다. 예를 들면, 데이터 타입은 고유 명사(예를 들면, 존 스미스(John Smith), 사라 존스(Sarah Jones))일 수도 있다. 원래의 데이터의 모든 고유 명사는, 고유 명사가 원래의 데이터에 존재했었다는 것을 나타내는 일반 값으로 대체될 수도 있다(예를 들면, 이름(NAME), 고유명사(PROPER NAME)). 다른 예에서, 데이터 타입은 특정한 날짜(예를 들면, 1978년 12월 25일)일 수도 있다. 모든 특정한 날짜는, 그 날짜가 존재했었다는 것 또는 상대적 날짜가 존재한다는 것을 나타내는 일반 값으로 대체될 수도 있다(예를 들면, 날짜, 오늘 날짜). 본 명세서에서 사용될 때, 데이터를 마스킹하는 것은, 데이터 타입의 특정한 값을 제거하는 것을 의미한다. 특정한 값이 제거되면, 그것은, 값이 제거되었다는 지시(예를 들면, XXX)로 대체될 수도 있거나 또는 대체되지 않을 수도 있다.
트레이닝 데이터 세트(302)의 추상화 및/또는 마스킹(308)은 트레이닝 데이터 세트(302)의 데이터를 분류 및/또는 순위 매김하는 것을 포함할 수도 있다. 데이터를 분류하는 것은 데이터를 분석하는 것 및 데이터에 포함되는 하나 이상의 데이터 타입을 결정하는 것을 지칭한다. 예를 들면, 데이터는 토큰화될 수도 있고 데이터의 각각의 토큰은 그 토큰에 포함되는 데이터 타입을 결정하기 위해 분석될 수도 있다. 데이터 타입은 데이터에 포함되는 정보의 종류(예를 들면, 날짜, 계좌 번호, 수량, 픽셀 강도, 진단)를 지칭한다. 소정의 데이터 타입은 민감한 데이터(예를 들면, 고유 명사, 주소, 계좌 번호)일 수도 있다. 데이터를 순위 매김하는 것은 데이터를 분석하는 것 및 특정한 데이터 타입 및/또는 값이 데이터에서 얼마나 자주 존재하는지를 결정하는 것을 지칭한다. 예를 들면, 순위 매김은, 데이터에서 및/또는 "진단" 데이터 타입을 갖는 것으로 분류되는 데이터에서 값 "양성(benign)"이 나타나는 횟수를 결정할 수도 있다.
몇몇 예에서, 트레이닝 데이터 세트(302)에서의 데이터의 값이 추상화되는지 또는 마스킹되는지의 여부는, 값의 분류 및/또는 순위에 적어도 부분적으로 기초할 수도 있다. 몇몇 예에서, 값이 민감하지 않은 데이터로서 분류되는 경우, 그 값은 순위에 관계없이 추상화 또는 마스킹되지 않을 수도 있다. 몇몇 예에서, 값이 민감한 데이터로서 분류되지만, 그러나, 값이 데이터에서 다수 회 나타난다는 것을 순위가 나타내는 경우(예를 들면, 임계 횟수를 나타내거나 또는 임계치를 초과하는 데이터 타입의 값의 백분율을 나타냄), 값은 추상화될 수도 있다. 몇몇 예에서, 값이 민감한 데이터로서 분류되고 값이 드물다는 것을 순위가 나타내는 경우(예를 들면, 임계 횟수 미만으로 나타나거나 또는 임계치 미만의 데이터 타입의 값의 백분율을 나타냄), 값은 마스킹될 수도 있다.
몇몇 예에서, 추상화 및/또는 마스킹(308)은 규칙 기반의 시스템에 의해 수행될 수도 있다(예를 들면, 소정의 길이의 숫자의 모든 문자열은 계좌 번호임). 몇몇 예에서, 추상화 및/또는 마스킹(308)은, 트레이닝 데이터 세트에서, 민감한 데이터를 비롯하여, 데이터 타입을 식별하도록 트레이닝되는 머신 러닝 모델에 의해 수행될 수도 있다.
추상화 및/또는 마스킹(308)에 의해 프로세싱되는 트레이닝 데이터 세트(302)의 데이터는 수정된 트레이닝 데이터 세트(310)를 생성하기 위해 사용될 수도 있다. 수정된 트레이닝 데이터 세트(310)는 하나 이상의 수정된 입력(X')(314) 및 대응하는 수정된 결과(Y')(312)를 포함할 수도 있다. 수정된 트레이닝 데이터 세트(310)는 추상화되는 또는 제거되는 트레이닝 데이터 세트(302)로부터의 민감한 데이터의 일부 또는 모두를 가질 수도 있다. 수정된 트레이닝 데이터 세트(310)는 머신 러닝 모델(316)을 트레이닝시키기 위해 사용될 수도 있다. 몇몇 예에서, 수정된 트레이닝 데이터 세트(310)를 사용하는 것은 머신 러닝 모델(316)이, 결과로서 제공될 수 있는 민감한 데이터를 "기억"하는 위험을 감소시킬 수도 있거나 또는 제거할 수도 있다.
도 3에서 도시되는 바와 같이, 일단 트레이닝되면, 머신 러닝 모델(f())(316)은 새로운 입력 데이터(Xnew)(324)를 수신할 수도 있고
Figure pct00001
되도록 새로운 입력 데이터(324)에 기초하여 결과(
Figure pct00002
)(326)를 제공할 수도 있다. 도 3에서 도시되는 것과 같은 몇몇 예에서, 새로운 입력 데이터(324)는, 별개의 디바이스 상에서 구현될 수도 있는 애플리케이션(320)으로부터 제공될 수도 있고, 머신 러닝 모델(316)은 결과를 애플리케이션(320)으로 제공할 수도 있다. 머신 러닝 모델(316)이 동적으로 트레이닝되는 몇몇 실시형태에서, 새로운 입력 데이터(324) 및 결과(326)는 머신 러닝 모델(316)을 트레이닝시키기 위해 사용되기 이전에 추상화 및/또는 마스킹되는 다른 트레이닝 데이터 세트(302)에 포함될 수도 있다.
도 4는 본 개시내용의 예에 따른 데이터를 토큰화하는 예를 도시한다. 몇몇 예에서, 토큰화는 머신 러닝 애플리케이션(300)과 같은 머신 러닝 애플리케이션에 의해 수행될 수도 있다. 원래의 데이터(400)는 텍스트 문자열 "2020년 9월 15일에 모임을 준비합시다"(Let's organize a meeting on September 15th, 2020)이다. 원래의 데이터(400)는 토큰(404)으로 지칭되는 세그먼트로 파싱되는데, 이들은 몇몇 예에서 머신 러닝 모델에 의해 개별적으로 분석될 수도 있다. 도 4에서 도시되는 것과 같은 몇몇 예에서, 원래의 데이터(400)는 원래의 데이터(400)의 엘리먼트가 상이한 토큰(404)에 걸쳐 반복되도록 토큰화될 수도 있다. 예를 들면, 단어 "모임(meeting)"은 4에서 세 개의 상이한 토큰(404)에서 나타난다. 토큰(404)은, 입력(406)의 토큰(404)이 목적하는 결과(408)의 토큰(404)과 관련되도록 구성된다. 입력(406) 및 결과(408) 쌍의 세트의 모두는 머신 러닝 모델을 트레이닝시키기 위한 트레이닝 데이터 세트(402)로서 사용될 수도 있다.
도 4에서 제공되는 예는 텍스트 데이터를 사용한 토큰화를 예시한다. 몇몇 예에서, 텍스트 데이터의 토큰은 k-gram을 사용하여 생성될 수도 있지만, 그러나 다른 방법이 또한 사용될 수도 있다. 더구나, 도 4에서 제공되는 예는 단지 예시적이며 본 개시는 도시되는 텍스트 데이터 또는 특정한 토큰화 방법으로 제한되지는 않는다.
도 5는 본 개시내용의 예에 따른 방법(500)의 플로우차트이다. 몇몇 예에서, 방법(500)의 모두 또는 일부는 컴퓨팅 디바이스, 예를 들면, 도 2에서 도시되는 컴퓨팅 디바이스(200)에 의해 수행될 수도 있다. 몇몇 예에서, 방법(500)의 모두 또는 일부는, 몇몇 예에서, 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스에 의해 구현될 수도 있는 도 3에서 도시되는 머신 러닝 애플리케이션(300)과 같은 머신 러닝 애플리케이션에 의해 수행될 수도 있다.
블록(502)에서, "데이터를 수신함"이 수행될 수도 있다. 몇몇 예에서, 데이터는 인터페이스(214)와 같은 인터페이스에 의해 수신될 수도 있다. 몇몇 예에서, 데이터는 텍스트, 이미지, 및/또는 사운드 데이터를 포함할 수도 있다. 몇몇 예에서, 데이터는 에지 디바이스(222)와 같은 에지 디바이스로부터 수신될 수도 있다.
블록(504)에서, "데이터를 순위 매김함"이 수행될 수도 있다. 몇몇 예에서, 순위는 하나 이상의 값이 데이터에 포함되는 횟수를 나타낼 수도 있다. 블록(506)에서 "데이터를 분류함"이 수행될 수도 있다. 몇몇 예에서, 분류는 데이터에 포함되는 하나 이상의 데이터 타입을 나타낼 수도 있다. 몇몇 예에서, 분류하는 것은 규칙 기반의 분류일 수도 있다. 몇몇 예에서, 분류하는 것은 신경망과 같은 머신 러닝 모델에 의해 수행될 수도 있다. 몇몇 예에서, 블록(506)은 블록(504) 이전에 수행될 수도 있다. 몇몇 예에서, 블록(504 및 506)은 동시에 수행될 수도 있다.
블록(508)에서, "값을 변경함"이 수행될 수도 있다. 몇몇 예에서, 데이터에 포함되는 하나 이상의 값 중 한 값이 변경될 수도 있다. 몇몇 예에서, 값은 추상화될 수도 있거나 또는 마스킹될 수도 있다. 값이 변경되는 방법 및/또는 값이 변경되는지의 여부는, 몇몇 예에서, 값의 순위 및 분류에 적어도 부분적으로 기초할 수도 있다. 몇몇 예에서, 값을 변경하는 것은, 값의 데이터 타입이 민감한 데이터라는 것을 분류가 나타내고 값이 데이터에 포함되는 횟수가 임계값 이하라는 것을 순위가 나타내는 경우, 값을 마스킹하는 것을 포함할 수도 있다. 몇몇 예에서, 값을 변경하는 것은, 값의 데이터 타입이 민감한 데이터라는 것을 분류가 나타내고 값이 데이터에 포함되는 횟수가 임계값 이상이라는 것을 순위가 나타낼 때, 값을 추상화하는 것을 포함할 수도 있다. 몇몇 예에서, 민감한 데이터는 고유 명사, 날짜, 주소, 패스워드, 생년월일, 계좌 번호, 및/또는 사용자명을 포함할 수도 있다.
블록(510)에서, "머신 러닝 모델에 데이터를 제공함"이 수행될 수도 있다. 머신 러닝 모델로 제공되는 데이터는, 몇몇 예에서, 변경된 값을 포함할 수도 있다. 즉, 머신 러닝 모델로 제공되는 데이터는 블록(502)에서 원래 수신되는 데이터로부터 수정될 수도 있다. 몇몇 예에서, 데이터는 머신 러닝 모델을 트레이닝시키기 위한 트레이닝 데이터 세트로서 사용될 수도 있다. 옵션 사항으로, 블록(512)에서, "머신 러닝 모델을 트레이닝시킴"이 수행될 수도 있다. 머신 러닝 모델은 트레이닝 데이터 세트를 사용하여 트레이닝될 수도 있다.
옵션 사항으로, 몇몇 예에서, "데이터를 하나 이상의 토큰으로 파싱함"이 블록(514)에서 수행될 수도 있다. 몇몇 예에서, 토큰 중 개개의 토큰은 블록(502)에서 수신되는 데이터의 적어도 일부를 포함할 수도 있다. 도 5에서 도시되는 것과 같은 몇몇 예에서, 파싱은 데이터의 순위 매김 및/또는 분류 이전에 수행될 수도 있다.
도 6은 본 개시내용의 예에 따른 출력을 제공하기 위한 머신 러닝 애플리케이션(600)의 기능 블록도이다. 몇몇 예에서, 머신 러닝 애플리케이션(600)은 컴퓨터 판독 가능 명령어에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(600)은 FPGA 및/또는 ASIC와 같은 하드웨어에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(600)은 컴퓨터 판독 가능 명령어 및 하드웨어의 조합에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(600)은 도 2에서 도시되는 컴퓨팅 디바이스(200)에 의해 구현될 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(600)은 도 2에서 도시되는 머신 러닝 애플리케이션(300)과 조합하여 사용될 수도 있고 그리고/또는 그와 함께 포함될 수도 있다. 예를 들면, 머신 러닝 모델(602)은 머신 러닝 모델(316)에 포함될 수도 있거나 또는 머신 러닝 모델(316)은 머신 러닝 모델(602)에 포함될 수도 있다.
몇몇 예에서, 머신 러닝 애플리케이션(600)은 입력으로서 머신 러닝 모델(602)로 제공되는 데이터(X)(622)에 기초하여 결과(Y)(604)(예를 들면, 추론)를 생성하도록 트레이닝될 수도 있는 머신 러닝 모델(602)을 포함할 수도 있다. 머신 러닝 모델(602)은 결과(604)와 관련되는 신뢰도 레벨(C)(606)을 생성할 수도 있다. 신뢰도 레벨(606)은, 머신 러닝 애플리케이션(600)이 데이터(622)에 기초하여 정확한 또는 목적하는 결과(604)를 제공하였다는 확실성(예를 들면, 확률)의 정도를 나타낼 수도 있다. 신뢰도 레벨(606)을 결정하는 것은 도 7 및 도 8을 참조하여 더욱 상세하게 설명된다. 통상적으로, 낮은 신뢰도 레벨을 갖는 결과를 제공하는 것은 바람직하지 않다. 그러나, 머신 러닝 모델에서, 절대적 또는 거의 절대적 확실성은 드물다. 따라서, 그러한 확실성에 대응하는 신뢰도 레벨은, 머신 러닝 모델(602)이 머신 러닝 모델(602)을 트레이닝시키기 위해 사용된 트레이닝 데이터 세트(도 6에서 도시되지 않음)로부터의 결과를 기억하였다는 것을 나타낼 수도 있다. 몇몇 애플리케이션에서, 높은 신뢰도 레벨을 갖는 결과는 민감한 데이터를 포함할 가능성이 더 높을 수도 있고 그리고/또는 머신 러닝 모델 및/또는 트레이닝 데이터 세트에 관한 정보를 노출시킬 수도 있다. 따라서, 신뢰도 레벨(606)이 높으면 결과(604)를 제공하는 것을 삼가는 것이 바람직할 수도 있다.
몇몇 예에서, 신뢰도 레벨(606)은 블록(608)에서 도시되는 바와 같이 분석될 수도 있다. 몇몇 예에서, 블록(608)은 신뢰도 레벨(606)을 하나 이상의 임계값과 비교할 수도 있는 비교기를 포함할 수도 있다. 몇몇 예에서, 신뢰도 레벨(606)은, 결과(604)가 트레이닝 데이터 세트로부터의 기억된 결과를 포함하지 않는다는 것을 확인할 수도 있는 임계값과 비교될 수도 있다. 몇몇 예에서, 임계값은, 결과(604)가 데이터(622)에 기초한 정확한 또는 목적하는 결과이다는 높은 확실성 또는 확률을 나타낼 수도 있다. 예를 들면, 임계값은 몇몇 예에서 0.99 또는 1.00일 수도 있다.
옵션 사항으로, 몇몇 예에서, 다른 임계값은, 허용 가능한 레벨의 신뢰도를 갖는 정확한 결과(604)를 제공하기에 신뢰도 레벨(606)이 충분히 높다는 것을 확인할 수도 있다. 허용 가능한 레벨의 신뢰도에 어떤 임계값이 대응하는지는 애플리케이션에 따라 변할 수도 있다. 예를 들면, 몇몇 애플리케이션에서, 0.51의 임계값이 허용 가능한 신뢰도 레벨일 수도 있다. 다른 애플리케이션에서, 0.60의 임계값이 허용 가능한 신뢰도 레벨일 수도 있다. 다른 애플리케이션에서, 0.80, 0.90, 또는 0.95의 임계값이 허용 가능한 신뢰도 레벨일 수도 있다. 몇몇 애플리케이션에서, 임계치 레벨이 사용되지 않을 수도 있고 가장 높은 확률(및/또는 상위 임계값보다 더 큰 확률을 갖는 임의의 분류를 제거한 이후 가장 높은 확률)을 갖는 분류가 결과(604)로서 반환될 수도 있다.
신뢰도 레벨(606)의 분석에 기초하여, 머신 러닝 애플리케이션(600)은 출력(624)을 제공할 수도 있다. 몇몇 예에서, 결과(604)가 기억된 결과가 아니다는 것(예를 들면, 신뢰도 레벨(606)이 임계값 이하임)을 신뢰도 레벨(606)의 분석이 결정하면, 출력(624)은 블록(610)에 의해 나타내어지는 바와 같은 결과(604)를 포함할 수도 있다. 몇몇 예에서, 결과(604)가 기억된 결과라는 것(예를 들면, 신뢰도 레벨(606)이 임계값 이상임)을 신뢰도 레벨(606)의 분석이 결정하면, 출력(624)은 결과(604)를 포함하지 않을 수도 있다. 몇몇 예에서, 블록(612)에 의해 나타내어지는 바와 같이, 출력(624)은 에러 신호를 포함할 수도 있다. 에러 신호는 입력 데이터(622)에 대해 어떠한 결과도 제공될 수 없다는 것을 나타낼 수도 있다. 옵션 사항으로, 몇몇 예에서, 결과(604)가 신뢰 가능하지 않다는 것(예를 들면, 데이터(622)에 대한 정확한 및/또는 목적하는 출력일 낮은 확률을 가짐)을 나타내는 에러 신호는 신뢰도 레벨(606)이 임계값 이하일 때 제공될 수도 있다.
옵션 사항으로, 몇몇 예에서, 결과(604)가 기억된 결과라는 것을 신뢰도 레벨(606)이 나타내는 경우, 머신 러닝 애플리케이션(600)은, 결과가 기억되지 않는다는 것을 나타내는 신뢰도 레벨을 갖는 다른 결과(Y')를 머신 러닝 모델(602)로부터 생성할 수도 있다. 즉, 새로운 결과(Y')에 대한 신뢰도 레벨은 원래의 결과(604)와 관련되는 신뢰도 레벨(606)보다 더 낮을 수도 있다. 몇몇 경우에, 결과(Y')가 "두 번째로 가장 좋은" 결과를 나타낼 수도 있다. 그 다음, 결과(Y')는 블록(614)에 의해 나타내어지는 바와 같이 출력(624)에 포함될 수도 있다.
몇몇 예에서, 데이터(622)는, 머신 러닝 애플리케이션(600)을 구현하는 컴퓨팅 디바이스와는 별개의 컴퓨팅 디바이스 상에 포함될 수도 있는 별개의 애플리케이션(620)에 의해 제공될 수도 있다. 예를 들면, 애플리케이션(620)은 에지 디바이스(222)와 같은 에지 디바이스에 있을 수도 있다. 몇몇 예에서, 출력(624)은 애플리케이션(620)으로 제공될 수도 있다.
몇몇 애플리케이션에서, 출력(624)에 기억된 결과를 포함하는 것에 대한 우려는, 데이터(622)의 소스, 머신 러닝 모델(602)을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트의 소스, 출력(624)이 제공되는 대상, 및/또는 머신 러닝 애플리케이션(600)의 사용자에 따라 변할 수도 있다. 예를 들면, 관리자가 머신 러닝 애플리케이션(600)을 사용하는 경우, 결과가 기억되는지 또는 기억되지 않는지의 여부를 결정하기 위해 임계값은 높게(예를 들면, 1.0) 설정될 수도 있다. 관리자의 예는, 머신 러닝 애플리케이션(600)을 테스트하고 있는 머신 러닝 애플리케이션(600)을 소유하는 회사의 소프트웨어 엔지니어일 수도 있다. 다른 예에서, 머신 러닝 애플리케이션(600)에 액세스하는 사용자(예를 들면, 애플리케이션(620)의 사용자)가 또한 트레이닝 데이터 세트의 소스인 경우, 임계값은 또한 높게 설정될 수도 있다. 예를 들면, 스마트 작성 머신 러닝 모델(602)이 사용자 자신의 전자 메일에 대해서만 트레이닝된 경우. 또 다른 예에서, 사용자가 관리자가 아니고 머신 러닝 모델(602)이 사용자로부터의 데이터에 대해서만 트레이닝되지 않았던 경우, 임계값은 더 낮게 설정될 수도 있다(예를 들면, 0.97, 0.98, 0.99).
도 7은 본 개시내용의 예에 따른 신경망(700)의 다이어그램이다. 몇몇 예에서, 신경망(700)은 머신 러닝 모델(316) 및/또는 머신 러닝 모델(602)과 같은 머신 러닝 모델에 포함될 수도 있다. 몇몇 예에서, 신경망(700)은 결정론적일(deterministic) 수도 있다. 신경망(700)은 입력 노드(702)를 포함할 수도 있다. 몇몇 예에서, 입력 노드(702)는 레이어 단위로 편제될 수도 있다. 입력 노드(702)는 가중치(704)에 의해 은닉 유닛(706)의 하나 이상의 레이어에 커플링될 수도 있다. 몇몇 예에서, 은닉 유닛(706)은 관련되는 가중치(704)에 적어도 부분적으로 기초하여 입력 노드(702)로부터의 하나 이상의 입력에 대한 동작을 수행할 수도 있다. 은닉 유닛(706)의 출력은, 신뢰도 값, 즉 신경망(700)에 의해 추론되는 결과에서의 신뢰도의 레벨과 관련되는 값을 반환할 수 있는 출력 레이어(708)로 제공될 수도 있다. 출력 레이어(708)는, 결과 노드(710)로 제공되는 결과(
Figure pct00003
)와 관련되는 신뢰도 값(예를 들면, 신뢰도 레벨)을 계산할 수도 있다.
몇몇 예에서, 출력 레이어(708)는 분류 또는 회귀 출력의 신뢰도 값을 계산하기 위해 소프트맥스(softmax) 함수를 사용할 수도 있다. 소프트맥스 함수는 다음과 같이 표현될 수도 있다:
Figure pct00004
여기서
Figure pct00005
는 출력의 신뢰도 값으로서 사용되며,
Figure pct00006
는 출력이고 n은 출력의 수이다. 그러나, 다른 예에서 신뢰도 레벨을 계산하기 위해, 소프트맥스 수학식의 변형(예를 들면, argmax) 또는 다른 수학식 또는 특수화된 추가적인 레이어가 사용될 수도 있다.
도 8은 본 개시내용의 예에 따른 신경망(800)의 다이어그램이다. 몇몇 예에서, 신경망(800)은 머신 러닝 모델(316) 및/또는 머신 러닝 모델(602)과 같은 머신 러닝 모델에 포함될 수도 있다. 몇몇 예에서, 신경망(800)은 확률론적일(stochastic) 수도 있다(예를 들면, 베이지안 표현). 신경망(700)과 유사하게, 신경망(800)은 입력 노드(802)를 포함할 수도 있다. 몇몇 예에서, 입력 노드(802)는 레이어 단위로 편제될 수도 있다. 입력 노드(802)는 가중치(804)에 의해 은닉 유닛(806)의 하나 이상의 레이어에 커플링될 수도 있다. 몇몇 예에서, 은닉 유닛(806)은 관련되는 가중치(804)에 적어도 부분적으로 기초하여 입력 노드(802)로부터의 하나 이상의 입력에 대한 동작을 수행할 수도 있다. 은닉 유닛(806)의 출력은 결과 노드(810)로 제공될 수도 있다. 그러나, 신경망(700)과는 달리, 결과 노드(810)에서의 결과는 단일의 값이 아니라 출력(Y)(808)의 분포이다. 몇몇 예에서, 출력(Y)의 분포는 다음과 같이 표현되는 확률 분포로부터 신뢰도 레벨을 추정하기 위해 사용될 수도 있다:
Figure pct00007
여기서 θ는 신경망(800)의 가중치이고 p는 출력 레이어에 대한 조건부 확률 분포이고, 그로부터 신뢰도 레벨이 유도된다. 다른 예에서 신뢰도 레벨을 결정하기 위해, 출력(808)의 분포의 분석 또는 다른 분포가 사용될 수도 있다. 도 7 및 도 8에서 도시되는 신뢰도 레벨을 결정하기 위한 기술은 예시적인 목적을 위해서만 제공되며 본 개시는 제공되는 예로 제한되지는 않는다.
도 9는 본 개시내용의 예에 따른 방법(900)의 플로우차트이다. 몇몇 예에서, 방법(900)의 모두 또는 일부는 컴퓨팅 디바이스, 예를 들면, 도 2에서 도시되는 컴퓨팅 디바이스(200)에 의해 수행될 수도 있다. 몇몇 예에서, 방법(900)의 모두 또는 일부는, 몇몇 예에서, 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스에 의해 구현될 수도 있는, 도 6에서 도시되는 머신 러닝 애플리케이션(600) 및/또는 도 3에서 도시되는 머신 러닝 애플리케이션(300)과 같은 머신 러닝 애플리케이션에 의해 수행될 수도 있다.
블록(902)에서, "데이터 입력을 수신함"이 수행될 수도 있다. 몇몇 예에서, 데이터 입력은 인터페이스(214)와 같은 인터페이스에 의해 수신될 수도 있다. 몇몇 예에서, 데이터 입력은 텍스트, 이미지, 및/또는 사운드 데이터를 포함할 수도 있다. 몇몇 예에서, 데이터 입력은 에지 디바이스(222)와 같은 에지 디바이스로부터 수신될 수도 있다.
블록(904)에서, "결과 및 신뢰도 레벨을 생성하기 위해 머신 러닝 모델을 사용하여 데이터 입력을 분석함"이 수행될 수도 있다. 몇몇 예에서, 머신 러닝 모델은 신경망일 수도 있다. 몇몇 예에서, 신경망은 결정론적일 수도 있다. 몇몇 예에서, 신뢰도 레벨은 도 7에 언급되는 것과 같은 소프트맥스 알고리즘에 적어도 부분적으로 기초하여 생성될 수도 있다. 몇몇 예에서, 신경망은 확률론적일 수도 있다. 몇몇 예에서, 신뢰도 레벨은 결과의 분포에 적어도 부분적으로 기초하여 생성될 수도 있다.
블록(906)에서, "신뢰도 레벨을 임계값과 비교함"이 수행될 수도 있다. 몇몇 예에서, 비교는 비교기에 의해 수행될 수도 있다. 블록(908)에서, "비교에 기초하여 출력을 제공함"이 수행될 수도 있다. 몇몇 예에서, 출력은 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스로부터 에지 디바이스(222)와 같은 에지 디바이스로 제공될 수도 있다.
몇몇 예에서, 출력은 신뢰도 레벨이 임계값 이상일 때 에러 신호를 포함한다. 몇몇 예에서, 출력은 신뢰도 레벨이 임계값 이하일 때 결과를 포함한다. 몇몇 예에서, 임계값은 0.99이다. 몇몇 예에서, 임계값은 머신 러닝 모델의 사용자의 타입에 적어도 부분적으로 기초한다. 사용자의 타입은, 예를 들면, 일반 사용자 및 관리자를 포함할 수도 있다. 몇몇 예에서, 임계값은 머신 러닝 모델을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트의 소스 및 머신 러닝 모델의 사용자에 적어도 부분적으로 기초한다. 몇몇 예에서, 임계값은, 트레이닝 데이터 세트의 소스가 사용자가 아닐 때보다, 트레이닝 데이터 세트의 소스가 사용자일 때 더 높다.
옵션 사항으로, 신뢰도 레벨이 임계값 이상일 때, 몇몇 예에서, 블록(908 및 910)은 더욱 프라이버시 인식적인 결과를 제공하기 위해 수행될 수도 있다. 블록(908)에서, "제2 결과를 생성하기 위해 머신 러닝 모델을 사용하여 데이터 입력을 분석함"이 수행될 수도 있다. 제2 결과는, 몇몇 예에서, 임계값 미만의 제2 신뢰도 레벨을 가질 수도 있다. 블록(910)에서, "출력으로서 제2 결과를 제공함"이 수행될 수도 있다.
몇몇 예에서, 방법(900)은 방법(500) 동안 및/또는 그 이후에 수행될 수도 있다.
도 10은 본 개시내용의 예에 따른 컴퓨팅 시스템(1000)이다. 컴퓨팅 시스템(1000)은, 웨어러블(예를 들면, 스마트 워치)(1002) 및/또는 모바일 디바이스(예를 들면, 스마트폰, 태블릿)(1004)와 같은 하나 이상의 에지 디바이스(1012)를 포함할 수도 있다. 웨어러블(1002) 및/또는 모바일 디바이스(1004)는 사용자(1001)에 의해 동작될 수도 있다. 컴퓨팅 시스템(1000)은, 하나 이상의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(200))를 포함할 수도 있는 클라우드 컴퓨팅 시스템(1006)을 더 포함할 수도 있다.
몇몇 예에서, 에지 디바이스(1012)는 애플리케이션(300, 320, 600, 및/또는 620), 또는 그 일부와 같은 하나 이상의 머신 러닝 애플리케이션을 구현할 수도 있다. 예를 들면, 에지 디바이스(1012)는 에지 디바이스(1012)에 의해 수집되는 데이터를 추상화 및/또는 마스킹하는 머신 러닝 애플리케이션을 구현할 수도 있다. 예를 들면, 웨어러블(1002)은 피트니스 데이터(예를 들면, 사용자 위치, 심박수, 시간당 마일, 운동 지속 기간)를 수집할 수도 있고 웨어러블(1002)에 의해 구현되는 머신 러닝 애플리케이션은 피트니스 데이터의 소정의 값(예를 들면, 정확한 위치)을 추상화 및/또는 마스킹할 수도 있다.
몇몇 예에서, 컴퓨팅 시스템(1006)은 애플리케이션(300, 320, 600, 및/또는 620), 또는 그 일부와 같은 하나 이상의 머신 러닝 애플리케이션을 구현할 수도 있다. 예를 들면, 클라우드 컴퓨팅 시스템(1006)은, 트레이닝 데이터 세트를 생성하고 그리고/또는 머신 러닝 모델을 트레이닝시키는 트레이닝 애플리케이션(1008)을 포함할 수도 있다. 몇몇 예에서, 추상화된 및/또는 마스킹된 데이터는, 그 다음, 에지 디바이스(1012)로부터 트레이닝 애플리케이션(1008)으로 제공될 수도 있다. 트레이닝 애플리케이션(1008)은 머신 러닝 모델을 트레이닝시키기 위해 에지 디바이스(1012)로부터의 추상화된 및/또는 마스킹된 데이터를 사용할 수도 있다. 이 예에서, 추상화 및/또는 마스킹이 에지 디바이스(1012) 상에서 수행되기 때문에, 거의 또는 전혀 민감하지 않은 데이터가 에지 디바이스(1012)에 의해 송신될 수도 있고 그리고/또는 클라우드 컴퓨팅 시스템(1006)에 의해 수신될 수도 있다. 이것은 몇몇 애플리케이션에서 민감한 정보에 대한 추가적인 보안을 제공할 수도 있다.
몇몇 예에서, 클라우드 컴퓨팅 시스템(1006)은, 에지 디바이스(1012)로부터 제공되는 입력에 기초하여 결과를 생성하는 머신 러닝 애플리케이션(1010)을 포함할 수도 있다. 몇몇 예에서, 머신 러닝 애플리케이션(1010)은 기억된 결과를 억제하는, 머신 러닝 애플리케이션(600)과 같은 머신 러닝 애플리케이션을 구현할 수도 있다. 몇몇 예에서, 단지 기억되지 않은 결과(예를 들면, 임계값 이하의 신뢰도 레벨을 갖는 결과)만이 클라우드 컴퓨팅 시스템(1006)으로부터 에지 디바이스(1012)로 제공된다. 몇몇 애플리케이션에서, 이것은 민감한 데이터가 클라우드 컴퓨팅 시스템(1006)에 의해 공개되는 위험 및/또는 머신 러닝 애플리케이션(1010)의 리버스 엔지니어링을 허용할 수도 있는 다른 정보를 감소시킬 수도 있다.
본 개시내용의 장치, 시스템, 및 방법은 머신 러닝 모델, 애플리케이션, 및/또는 시스템의 더욱 프라이버시 인식적인 동작을 가능하게 할 수도 있다. 본 명세서에서 설명되는 장치, 시스템, 및 방법은 트레이닝을 위해 머신 러닝 모델로 데이터를 제공하기 이전에 데이터의 값을 추상화 및/또는 마스킹할 수도 있다. 이것은 머신 러닝 모델이 몇몇 애플리케이션에서 민감한 정보를 기억하는 것을 감소시킬 수도 있거나 또는 방지할 수도 있다. 더구나, 본 개시내용의 장치, 시스템, 및 방법은 머신 러닝 모델로부터의 결과와 관련되는 신뢰도 레벨을 분석할 수도 있다. 신뢰도 레벨이 너무 높으면, 결과는 출력으로서 제공되지 않을 수도 있다. 머신 러닝 모델을 트레이닝시키기 위해 사용되는 데이터를 추상화하는 것 및/또는 마스킹하는 것 및/또는 소정의 조건 하에서 머신 러닝 모델로부터의 결과를 제공하지 않는 것은, 민감한 데이터의 노출 및/또는 머신 러닝 모델, 트레이닝 방법, 및/또는 트레이닝 데이터의 리버스 엔지니어링을 감소시킬 수도 있거나 또는 방지할 수도 있다. 몇몇 애플리케이션에서, 이것은 개인 및/또는 엔티티의 프라이버시 보호를 향상시킬 수도 있다.
소정의 실시형태의 전술한 설명은 본질적으로 단지 예시에 불과하며, 본 개시내용의 범위 또는 그것의 적용 또는 용도를 어떤 식으로도 제한하도록 의도되는 것은 아니다. 본 장치, 시스템, 및 방법의 실시형태에 대한 이 상세한 설명에서, 본 명세서의 일부를 형성하며, 설명된 장치, 시스템 및 방법이 실시될 수도 있는 예시 고유의 실시형태에 의해 나타내어지는 첨부의 도면에 대한 참조가 이루어진다. 이들 실시형태는, 기술 분야의 숙련된 자가 본 개시된 장치, 시스템, 및 방법을 실시하는 것을 가능하게 하도록 충분히 상세하게 설명되며, 다른 실시형태가 활용될 수도 있다는 것 및 본 개시내용의 취지 및 범위로부터 벗어나지 않으면서 구조적 및 논리적 변경이 이루어질 수도 있다는 것이 이해되어야 한다. 또한, 명확화의 목적을 위해, 소정의 특징부의 상세한 설명은, 본 개시내용의 실시형태의 설명을 모호하게 하지 않게 하기 위해, 그들이 기술 분야에서 숙련된 자에게 명백할 때 논의되지 않을 것이다. 따라서, 본 명세서에서의 논의는 제한적인 의미로 취해져서는 안되며, 본 개시내용의 범위는 첨부된 청구범위에 의해서만 정의된다. 본 명세서에서 사용될 때, 용어 "장치"는 회로, 디바이스, 시스템, 컴포넌트, 또는 이들의 조합을 지칭할 수도 있다. 예를 들면, 장치는 컴퓨팅 디바이스, 프로세서, 메모리, 메모리 디바이스, 모바일 디바이스, 에지 디바이스, 서버, 및/또는 클라우드 컴퓨팅 시스템일 수도 있다.
물론, 본 시스템, 디바이스 및 방법에 따라, 본 명세서에서 설명되는 예, 실시형태 또는 프로세스 중 임의의 하나는, 하나 이상의 다른 예, 실시형태 및/또는 프로세스와 결합될 수도 있거나 또는 별개의 디바이스 또는 디바이스 부분 사이에서 분리될 수도 있고 그리고/또는 수행될 수도 있다는 것이 인식되어야 한다.
마지막으로, 상기의 논의는 단지 예시적인 것으로 의도되고 첨부된 청구범위를 임의의 특정한 실시형태 또는 실시형태의 그룹으로 제한하는 것으로 해석되어서는 안된다. 따라서, 본 개시내용의 다양한 실시형태가 특히 상세하게 설명되었지만, 후속되는 청구범위에서 기술되는 바와 같은 본 개시내용의 더욱 광범위하고 의도된 취지 및 범위로부터 벗어나지 않으면서 수많은 수정 및 대안적인 실시형태가 기술 분야에서 통상의 기술을 가진 자에 의해 고안될 수도 있다는 것이 또한 인식되어야 한다. 따라서, 본 명세서 및 도면은 예시적인 방식으로 간주되어야 하며 첨부된 청구범위의 범위를 제한하도록 의도되지는 않는다.

Claims (27)

  1. 장치로서,
    프로세서; 및
    다른 디바이스로부터 수신되는 입력을 저장하도록 구성되는 비일시적 컴퓨터 판독 가능 매체
    를 포함하되, 상기 비일시적 컴퓨터 판독 가능 매체는 명령어로 인코딩되고, 상기 명령어는, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금:
    상기 입력으로부터, 머신 러닝 모델을 사용하여, 결과를 나타내는 제1 값 및 신뢰도 레벨을 나타내는 제2 값을 생성하게 하고;
    상기 제2 값을 임계값과 비교하게 하되, 상기 임계값은 상기 머신 러닝 모델을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트로부터 기억되는 제3 값을 포함하는 상기 제1 값을 나타내고; 그리고
    그 비교에 기초하여 출력을 상기 다른 디바이스로 제공하게 하는, 장치.
  2. 제1항에 있어서, 상기 출력은 상기 제2 값이 상기 임계값 이하일 때 상기 결과를 포함하는, 장치.
  3. 제1항에 있어서, 상기 출력은 상기 제2 값이 상기 임계값 이상일 때 에러 신호를 포함하는, 장치.
  4. 제1항에 있어서, 상기 다른 디바이스는 모바일 디바이스인, 장치.
  5. 제1항에 있어서, 상기 머신 러닝 모델은 수정된 트레이닝 데이터 세트를 사용하여 트레이닝되되, 상기 수정된 트레이닝 데이터 세트는 마스킹된 값 또는 추상화된 값 중 적어도 하나를 포함하는, 장치.
  6. 제5항에 있어서, 상기 수정된 트레이닝 데이터 세트로부터의 상기 데이터 중 적어도 일부는 상기 다른 디바이스로부터 수신되는, 장치.
  7. 방법으로서,
    데이터 입력을 수신하는 단계;
    상기 데이터 입력으로부터, 머신 러닝 모델을 사용하여, 결과를 나타내는 제1 값 및 신뢰도 레벨을 나타내는 제2 값을 생성하는 단계;
    상기 제2 값을 상기 임계값과 비교하는 단계로서, 상기 임계값은 상기 머신 러닝 모델을 트레이닝시키기 위해 사용되는 트레이닝 데이터 세트로부터 기억되는 제3 값을 포함하는 상기 제1 값을 나타내는, 상기 비교하는 단계; 및
    상기 비교에 기초하여 출력을 제공하는 단계
    를 포함하는, 방법.
  8. 제7항에 있어서, 상기 출력은 상기 제2 값이 상기 임계값 이상일 때 에러 신호를 포함하는, 방법.
  9. 제7항에 있어서,
    상기 제2 값이 상기 임계값 이상인 경우:
    상기 머신 러닝 모델을 사용하여 상기 데이터 입력을 분석하여 제2 결과를 나타내는 제4 값 및 제2 신뢰도 레벨을 나타내는 제5 값을 생성하는 단계로서, 상기 제5 값은 상기 임계값 미만인, 상기 제5 값을 생성하는 단계; 및
    상기 제4 값을 상기 출력으로서 제공하는 단계
    를 더 포함하는, 방법.
  10. 제7항에 있어서, 상기 출력은 상기 제2 값이 상기 임계값 이하일 때 상기 제1 값을 포함하는, 방법.
  11. 제7항에 있어서, 상기 제2 값은 소프트맥스(softmax) 알고리즘에 적어도 부분적으로 기초하여 생성되는, 방법.
  12. 제7항에 있어서, 상기 제2 값은 상기 제1 값의 분포에 적어도 부분적으로 기초하여 생성되는, 방법.
  13. 제7항에 있어서, 수정된 트레이닝 데이터 세트를 사용하여 상기 머신 러닝 모델을 트레이닝시키는 단계를 더 포함하되, 상기 수정된 트레이닝 데이터 세트는 마스킹된 값 또는 추상화된 값 중 적어도 하나를 포함하는, 방법.
  14. 장치로서,
    프로세서; 및
    데이터를 저장하도록 구성되는 비일시적 컴퓨터 판독 가능 매체
    를 포함하되, 상기 비일시적 컴퓨터 판독 가능 매체는 명령어로 인코딩되고, 상기 명령어는, 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    순위(rank)를 나타내는 제1 값을 생성하게 하되, 상기 제1 값은 하나 이상의 값이 상기 데이터에 포함되는 횟수를 나타내고,;
    분류를 나타내는 제2 값을 생성하게 하되, 상기 제2 값은 상기 데이터에 포함되는 하나 이상의 데이터 타입을 나타내고;
    상기 제1 값 및 상기 제2 값에 기초하여 상기 데이터에 포함되는 상기 하나 이상의 값 중 하나의 값을 변경하게 하고; 그리고
    변경되는 상기 값을 포함하는 상기 데이터를 포함하는 트레이닝 데이터 세트를 생성하게 하는, 장치.
  15. 제14항에 있어서, 상기 명령어는 상기 제2 값을 생성하기 위해 머신 러닝 모델을 구현하는, 장치.
  16. 제15항에 있어서, 상기 머신 러닝 모델은 신경망인, 장치.
  17. 제14항에 있어서, 상기 명령어는 상기 제2 값을 생성하기 위해 규칙 기반의 분류 시스템을 구현하는, 장치.
  18. 제14항에 있어서, 상기 비일시적 컴퓨터 판독 가능 매체는 머신 러닝 모델을 상기 트레이닝 데이터 세트를 사용하여 트레이닝시키기 위한 명령어로 추가로 인코딩되는, 장치.
  19. 제14항에 있어서, 상기 하나 이상의 값 중 상기 값은, 상기 값의 상기 데이터 타입이 민감한 데이터라는 것을 상기 제2 값이 나타내고 상기 값이 상기 데이터에 포함되는 상기 횟수가 임계값 이상이라는 것을 상기 제1 값이 나타낼 때, 추상 값으로 변경되는, 장치.
  20. 제14항에 있어서, 상기 하나 이상의 값 중 상기 값은, 상기 값의 상기 데이터 타입이 민감한 데이터라는 것을 상기 제2 값이 나타내고 상기 값이 상기 데이터에 포함되는 상기 횟수가 임계값 이하라는 것을 상기 제1 값이 나타낼 때, 마스킹된 값으로 변경되는, 장치.
  21. 방법으로서,
    데이터를 수신하는 단계;
    순위를 나타내는 제1 값을 생성하는 단계로서, 상기 제1 값은 하나 이상의 값이 상기 데이터에 포함되는 횟수를 나타내는, 상기 제1 값을 생성하는 단계;
    분류를 나타내는 제2 값을 생성하는 단계로서, 상기 제2 값은 상기 데이터에 포함되는 하나 이상의 데이터 타입을 나타내는, 상기 제2 값을 생성하는 단계;
    상기 제1 값 및 상기 제2 값에 기초하여 상기 데이터에 포함되는 상기 하나 이상의 값 중 하나의 값을 변경하는 단계; 및
    변경되는 상기 값을 포함하는 상기 데이터를 포함하는 트레이닝 데이터 세트를 생성하는 단계
    를 포함하는, 방법.
  22. 제21항에 있어서, 상기 값을 변경하는 단계는, 상기 값의 상기 데이터 타입이 민감한 데이터라는 것을 상기 제2 값이 나타내고 상기 값이 상기 데이터에 포함되는 상기 횟수가 임계값 이하라는 것을 상기 제1 값이 나타낼 때, 상기 값을 마스킹하는 단계를 포함하는, 방법.
  23. 제22항에 있어서, 상기 민감한 데이터는 고유 명사(proper name), 날짜, 주소, 패스워드, 생년월일, 계좌 번호, 또는 사용자명 중 적어도 하나를 포함하는, 방법.
  24. 제21항에 있어서, 상기 값을 변경하는 단계는, 상기 값의 상기 데이터 타입이 민감한 데이터라는 것을 상기 제2 값이 나타내고 상기 값이 상기 데이터에 포함되는 상기 횟수가 임계값 이상이라는 것을 상기 제1 값이 나타낼 때, 상기 값을 추상화하는 단계를 포함하는, 방법.
  25. 제21항에 있어서, 상기 제2 값은 규칙 기반의 분류에 의해 생성되는, 방법.
  26. 제21항에 있어서, 상기 제2 값은 머신 러닝 모델에 의해 생성되는, 방법.
  27. 제21항에 있어서, 상기 트레이닝 데이터 세트를 사용하여 머신 러닝 모델을 트레이닝시키는 단계를 더 포함하는, 방법.
KR1020227025041A 2019-12-30 2020-12-07 수정된 데이터에 기초한 머신 러닝 모델 그리고 이를 트레이닝 및 사용하기 위한 시스템 및 방법 KR20220116535A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962955297P 2019-12-30 2019-12-30
US62/955,297 2019-12-30
US16/854,107 US11861493B2 (en) 2019-12-30 2020-04-21 Machine learning models based on altered data and systems and methods for training and using the same
US16/854,107 2020-04-21
PCT/US2020/063622 WO2021137997A1 (en) 2019-12-30 2020-12-07 Machine learning models based on altered data and systems and methods for training and using the same

Publications (1)

Publication Number Publication Date
KR20220116535A true KR20220116535A (ko) 2022-08-23

Family

ID=76545500

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025041A KR20220116535A (ko) 2019-12-30 2020-12-07 수정된 데이터에 기초한 머신 러닝 모델 그리고 이를 트레이닝 및 사용하기 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US11861493B2 (ko)
KR (1) KR20220116535A (ko)
CN (1) CN114902247A (ko)
DE (1) DE112020006402T5 (ko)
WO (1) WO2021137997A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7353917B2 (ja) * 2019-10-29 2023-10-02 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
US11443045B2 (en) * 2020-05-05 2022-09-13 Booz Allen Hamilton Inc. Methods and systems for explaining a decision process of a machine learning model
US11870833B2 (en) * 2021-08-31 2024-01-09 Google Llc Methods and systems for encoder parameter setting optimization
US20230137378A1 (en) * 2021-11-02 2023-05-04 Microsoft Technology Licensing, Llc Generating private synthetic training data for training machine-learning models
US11854115B2 (en) * 2021-11-04 2023-12-26 Adobe Inc. Vectorized caricature avatar generator
CN117392564B (zh) * 2023-10-13 2024-04-05 哈尔滨师范大学 一种基于深度学习的河流水质反演方法、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135348B2 (en) 2008-11-21 2015-09-15 Alcatel Lucent Method and apparatus for machine-learning based profiling
US9094291B1 (en) 2010-12-14 2015-07-28 Symantec Corporation Partial risk score calculation for a data object
US9836620B2 (en) 2014-12-30 2017-12-05 Samsung Electronic Co., Ltd. Computing system for privacy-aware sharing management and method of operation thereof
US10326772B2 (en) 2015-11-20 2019-06-18 Symantec Corporation Systems and methods for anonymizing log entries
GB201610883D0 (en) 2016-06-22 2016-08-03 Microsoft Technology Licensing Llc Privacy-preserving machine learning
US10878124B1 (en) * 2017-12-06 2020-12-29 Dataguise, Inc. Systems and methods for detecting sensitive information using pattern recognition

Also Published As

Publication number Publication date
DE112020006402T5 (de) 2022-11-17
US20210201195A1 (en) 2021-07-01
US11861493B2 (en) 2024-01-02
WO2021137997A1 (en) 2021-07-08
CN114902247A (zh) 2022-08-12

Similar Documents

Publication Publication Date Title
US11861493B2 (en) Machine learning models based on altered data and systems and methods for training and using the same
US10957306B2 (en) Predicting personality traits based on text-speech hybrid data
Das et al. Rethinking fake news: Disinformation and ideology during the time of COVID-19 global pandemic
US10637826B1 (en) Policy compliance verification using semantic distance and nearest neighbor search of labeled content
US9881345B2 (en) Evaluating an impact of a user's content utilized in a social network
US10783447B2 (en) Information appropriateness assessment tool
US11830099B2 (en) Machine learning modeling for protection against online disclosure of sensitive data
US20130246290A1 (en) Machine-Assisted Legal Assessments
US11573995B2 (en) Analyzing the tone of textual data
US11928985B2 (en) Content pre-personalization using biometric data
US10291628B2 (en) Cognitive detection of malicious documents
US20230367868A1 (en) Password security warning system
JP2019514120A (ja) ユーザ中心の文書要約のための技術
US10692498B2 (en) Question urgency in QA system with visual representation in three dimensional space
US10210317B2 (en) Multiple-point cognitive identity challenge system
US10762438B1 (en) Extracting questions and answers
JP2024513569A (ja) 異常検出システムおよび方法
Albayram et al. Comparing the effectiveness of text-based and video-based delivery in motivating users to adopt a password manager
KR102344804B1 (ko) 인공지능 기반 모니터링 기술을 이용한 유저 피드백 정보 관리방법
US10902215B1 (en) Social hash for language models
US20180047025A1 (en) Multiple-Point Cognitive Identity Challenge System Using Voice Analysis
JP5942052B1 (ja) データ分析システム、データ分析方法、およびデータ分析プログラム
US20230062127A1 (en) Method for collaborative knowledge base development
JP6983729B2 (ja) 抽出装置、評価装置、抽出方法および抽出プログラム
WO2014068293A1 (en) Text analysis