SAS Tutorial | Interpreting Machine Learning Models in SAS

[음악 재생] 안녕하세요 저는 분석 교육 컨설턴트 인 Ari Zitin입니다 여기 SAS에서

오늘은 튜토리얼을하겠습니다 모델 해석 능력 도구 활성화 SAS Viya의 Model Studio에서 문제는 모델 해석이 무엇이며 왜 그것을 사용하고 싶습니까? 그래서 스스로에게 물어볼 수있는 몇 가지 질문 모델을 만들 때 다음과 같은 질문이 있습니다 모델이 작동 했습니까? 우리는 모델의 결과로 무엇을 할 것입니까? 모델이 공정 했습니까? 이 질문에 대한 답을 얻을 수 있습니다 모델 해석 도구로 모델이 작동 했습니까? 모델 해석 도구를 사용할 수 있습니다 모델이 어떻게 생각하는지에 대한 직관을 제공하기 위해 데이터에 대해, 어떤 종류의 입력 목표를 예측하는 데 사용하고 있습니다 그리고 그 입력으로 무엇을하고 있는지 확인이 가능합니다 직관을 확인하고 모델이해야 할 일 또는 어떤 종류의 입력을 사용해야하는지, 실제로하고있는 것과 모델로 무엇을 할 수 있는지 같은 질문 일부 모델은 해석 가능한 경우에만 유용합니다

예를 들어 시도하고 변경하기 위해 모델을 구축하는 경우 비즈니스 프로세스, 모델이 제안하는 것을 제안하는 이유를 알고 싶습니다 비즈니스 리더십을 설명 할 수 있습니다 변경해야하는 이유 반대로, 당신이 모델을 만들고 있다면 응답 할 가능성이 가장 높은 고객을 찾으려고 메일 캠페인에, 당신은하지 않을 수 있습니다 모델 해석 가능성에주의하십시오 저는 항상 모델로 무엇을하고 싶은지 생각합니다 모델이 작동하는지 여부 다른 쪽, 모델 해석의 다른 쪽 모델이 공정하고 표준에 부합합니까? 그 규제 기관이 당신을 위해 할당 한? 사람들에게 신용 점수를 줄 때 그들은 그들이 뭘 잘못했는지 알아낼 수 있어야합니다 또는 더 나은 신용 점수를 얻기 위해해야 ​​할 일 더 나은 대출을 받으십시오 따라서 규제 요건이 있습니다

모델을 설명하는 방법에 따라 고객과 규제 기관에 제대로하고 있는지 확인하십시오 공정성 측면에서, 물론, 보호 된 분류를 사용하는 모델입니까? 또는 사람들이 예측하려고 노력하는 것에 대한 특성? 귀하의 모델이 차별적이거나 편향되어 있습니까? 모델 해석 성은 이러한 질문에 대한 답변을 제공합니다 모델이 생각하고있는 것을 말함으로써 그래서 무엇의 세부 사항에 들어가기 위해 모델 해석 성은 실제로 몇 가지 모델을 살펴보고 이러한 모델을 해석합니다 그래서 우리는 고전적인 물류로 시작합니다 또는 선형 회귀

로지스틱 회귀 분석을 생각해 보겠습니다 LOGIT가 있다면- 이것은 일종의 공식입니다 p 모자의는 베타 0 + 베타 1 x1 + 베타 2 x2와 같습니다 이 LOGIT 점수는-우리의 확률입니다 확률을 예측하려고합니다 입력을 기반으로합니다

아이디어는이 모델을 해석 할 수 있다는 것입니다 이 계수들이 베타 1, 베타 2- LOGIT 점수를 어떻게 변경하는지 알려주십시오 본질적으로 확률의 로그 확률입니다 x1을 바꾸면서 x1을 1 단위 씩 늘리면 확률의 로그인 LOGIT 점수를 증가시킵니다 따라서 1-p 모자를 뺀 p 모자의 로그가됩니다

LOGIT 점수를 베타 1 양만큼 변경합니다 기본적으로 우리에게 말하는 것은 로지스틱 회귀를 해석 할 수 있다는 것입니다 이 추정치를 사용하여 우리의 확률을 이것이 예측 된 확률입니다 머신 러닝에서 예측하려는 모든 것 알고리즘-예측 확률이 어떻게 변하는가 입력을 변경하면 그래서 이것은 우리에게 무엇을 알려주기 때문에 해석 가능합니다 이 입력을 변경하면 발생합니다 맥락에서 저는 항상 생각하고 싶습니다

누군가 대출을 신청하고 있고 왜 대출을받지 못했습니까? 그리고 우리는 잘 말할 수 있습니다, 당신의 x1 보유한 연체 크레딧 한도 특정 임계 값을 초과했습니다 대출에 대한 채무 불이행 가능성을 의미 특정 임계 값을 초과 했으므로 대출이 거부되었습니다 그러나 여기서 결론은 기본적으로 로지스틱 회귀는 기본적으로 해석 가능합니다 모델 우리가 생각하는 다음 모델은 근본적으로 해석 가능한 모델은 의사 결정 트리입니다

우리가 결정 트리가 있다고 생각하면 여기 잎이 있습니다 여기에 루트 노드가 있고 분할됩니다 우리는 거기에 갈 x1이 5보다 작다고 가정 해 봅시다 그리고 이것은 그렇습니다, 그리고 이것은 그렇습니다

그리고 우리는 여기 x2가 06보다 작습니다 그리고 이것은 그렇습니다, 그리고 이것은 그렇습니다 그리고 나는 전체 결정 트리를 그리지 않을 것입니다 x1을 따르는 사람들이 0

5보다 작다고 가정 해 봅시다 x2가 06보다 작 으면이를 1로 분류합니다 그리고 우리는이 사람들을 0으로 분류합니다 이 확률이 70 %라고 가정 해 봅시다 이것은 60 %의 확률로, 우리는 그것을 1로 분류합니다

우리는 결국 설명을 얻을 수 있습니다 이 빈에-우리가 그것들을 1로 분류했다고 해봅시다 기본 데이터를 상상하고 있다고 가정 해 봅시다 그래서 우리는 그들이 가고 있다고 예측하고 있습니다 대출금을 불이행 할 때 그들은 왜 우리에게 x1의 가치를 말할 수 있는지 묻습니다 0

5 미만이었습니다 x2의 값이 06 미만입니다 공유 한 사람들의 60 %가 대출의 불이행으로 인해 그래서 당신은 그 쓰레기통에 빠지고, 우리는 예측합니다 당신은 대출을 기본으로합니다 당신이 그것을 바꾸고 싶다면, 우리는 시도하고 조정할 수 있습니다

x1 또는 x2의 가치 연체 신용 한도처럼 다시 한번,이 결정 트리 근본적으로 해석 가능한 모델입니다 이 규칙 목록에서 읽을 수 있기 때문에 왜 우리는 우리가 한 방식으로 누군가를 점수 이제 몇 가지에 대해 생각해 봅시다 의 기본적으로 해석 할 수없는 모델입니다 신경망에 대해 생각한다면 신경망은 방정식을 형성합니다

여기서는 약간의 신경망 다이어그램을 그릴 것입니다 x1과 x2, x1, x2라고합시다 그리고 세 개의 숨겨진 유닛이 있다고 가정 해 봅시다 x1과 x2는 모든 숨겨진 장치에 연결됩니다 숨겨진 레이어가 하나만 있다고 가정하겠습니다

여기서 문제는 여전히 x1의 값을 변경하면 여기이 숨겨진 유닛에 영향을 미칩니다 이 숨겨진 유닛은 여기에 있습니다 결과가 바뀌는 방식 x2의 순간 값에 따라 숨겨진 단위마다 tanh w0과 같은 공식이 있기 때문에 더하기 w1 x1 더하기 w2 x2 보시다시피이 탄의 출력은 여기서 x2의 가치에 따라 우리가 x1을 얼마나 많이 바꾸는가가 아니라 우리가 보는 것은 공식처럼 보이지만 로지스틱 회귀와 같이 개별적으로 독립적으로 각 개인의 효과를 격리 우리는 실제로 어떻게 변화하는지 해석 할 수 없습니다 변수가 결과를 바꿀 것입니다 하루가 끝나면 신경망 단지 큰 공식입니다 그리고 모든 입력을 공식에 ​​연결합니다

그리고 그것은 예측을합니다 그리고 당신이 묻는다면, 예측은 어떻게 될까요? x1을 05로 변경하면 알 수있는 유일한 방법은 x1을 05 씩 변경합니다 모델에 다시 연결하면 정말 해석이 아닙니다 우리는 단지 모델을 말하고 있습니다

이것이 모델이 말하는 것이기 때문입니다 따라서 기본적으로 해석 할 수없는 모델입니다 다음으로 생각하는 것은 숲과 그라디언트 부스팅입니다 나는 단지 작은 다이어그램을 그릴 것입니다 숲은 실제로 결정 트리의 모음 일뿐입니다

저는 여러 가지 결정 트리를 그리는 중입니다 여기에 그들은 막대기 사람들처럼 보입니다 숲과 그라디언트 모두 향상 의사 결정 트리의 통합을 포함합니다 각 트리마다 자체 목록이 있지만 우리가 해석 할 때 우리가 해석 할 수있는 규칙, 우리는 더 이상 그것을 해석 할 수 없습니다 규칙 목록의 일부 조합 실제로 규칙 요약 목록을 제공하지는 않습니다

오히려 우리는 모든 확률을 평균화하고 있습니다 나무에 의해 생성됩니다 따라서 하루가 끝나면 이러한 규칙 중 어느 것도 모델을 스코어링하는 데 사용할 실제 규칙입니다 그것들의 수치 평균 또는 합병입니다 우리는 실제로 평균적인 설명을 할 수 없습니다 갑자기 모든 변수가 결국 예측에 중요하다 우리가 찾고 있던 나무에 따라 목표 우리는 평균화를 할 때 본질적으로 다른 변수를보고있다 또는 다른 경로

따라서 고유 한 규칙 목록이 없습니다 이유를 예측하거나 설명하는 데 사용할 수있는 당신은 당신이 예측 한 것을 예측했습니다 계속해서 소프트웨어와 데이터를 살펴 보겠습니다 우리가 사용할 것입니다 그래서 우리는 타이타닉의 데이터를 사용할 것입니다

타이타닉이 침몰했을 때 살아 남았습니다 우리는 본질적으로 역사적 정보를 가지고 있습니다 승객에 대해, 그들이 어떤 오두막에 있었는지, 몇 살인지 그들의 성별이었습니다 그리고 우리는 그것을 사용하여 예측하고 시도 할 것입니다 타이타닉이 추락했을 때 생존 여부 가장 먼저 할 일은 소프트웨어로 이동하는 것입니다

Chrome을 열고 SAS Viya로갑니다 SAS Drive로 이동합니다 Viya 홈페이지 그리고 데이터에 대해 조금 더 이야기하겠습니다 소프트웨어에 데이터를로드하면 사용하고 있습니다 SAS Drive에서 왼쪽 상단에있는 햄버거 메뉴를 클릭하겠습니다 응용 프로그램 표시 메뉴라고도합니다

하지만 보편적 인 이름 인 햄버거 메뉴는 세 줄로 모델 작성으로갑니다 이를 통해 SAS Model Studio로 이동합니다 SAS Model Studio에서 새 프로젝트를 만들겠습니다 새 프로젝트를 클릭하겠습니다

이 타이타닉 모델 해석 가능성 데모 (Titanic Model Interpretability Demo)라고합니다 빈 템플릿을 사용하고 데이터를 선택하겠습니다 이것은 타이타닉 데이터가 될 것이므로 Import로갑니다 로컬 컴퓨터에서 로컬로 가져옵니다 데이터 D, 워크샵, SAS, UA19 이 자료는 유효하다

아래에 링크가 있으므로 이 데이터를 직접 찾을 수 있습니다 Import Item을 클릭하여 메모리에로드합니다 작은 데이터 세트이므로 매우 빠릅니다 오, 실제로 테이블이 이미있는 영역을 알려줍니다 존재합니다 난 그냥 좋은 측정을 위해 교체합니다

아마 그럴 필요는 없었을 것입니다 테이블이 이미 메모리에 있었기 때문에 그러나 나는 오늘 일찍 이것을로드했습니다 확인을 클릭하겠습니다 계속해서 저장을 클릭하십시오 타이타닉 데이터로 프로젝트를 빌드합니다

그리고 그것은 즉시 우리를 데리고 시작 Model Studio에서 데이터 탭이라고 부르는 방금로드 한 데이터에 대한 정보 입력 내용에 대해 이야기하겠습니다 내가 제거하는 과정을 겪을 때 사용하고 싶지 않습니다 먼저, 우리는 예측 모델링을하고 있습니다 "목표 역할을 가진 변수를 지정해야합니다" 우리는 목표가 필요합니다 우리는 사람들의 생존 여부를 예측하고 싶습니다 타이타닉이 추락했을 때 얼어 붙은 북대서양 물에 빠졌습니다

클릭은 살아 남았습니다 역할을 입력에서 대상으로 변경하겠습니다 이제 입력을 통해 목표를 시도하고 예측하려고합니다 타입별로 정렬하겠습니다 실례합니다

역할별로 정렬하겠습니다 입력인지 아닌지 걱정하기 때문입니다 우리가 남길 수있는 ID 변수 key_ID의 경우 이것을 ID에서 키로 변경하겠습니다 이 키를 참조 키로 사용하기 때문에 데이터의 개별 행

key_ID 아래에서 Key를 클릭하겠습니다 또한 일부 변수를 거부하고 싶습니다 저는 착수와 양피지를 선택하고 아래로 스크롤합니다 보트는 이미 거부되었습니다 그리고 저는이 두 가지를 거절 할 것입니다

입력 역할에서 거부 됨 역할로 전환하십시오 우리가 관심을 갖는 5 개의 입력 변수가 남습니다 그래서 나는 이것을 리조트 할 것입니다 우리는 그 다섯 개를 모두 볼 수 있습니다 전부

우리는 성관계를 가졌으니 그것은 남자 나 여자입니다 나이가 있습니다 나이는 몇 살인 지에 대한 숫자 변수입니다 아르 요금이 얼마인지에 대한 숫자 변수 인 운임이 있습니다 그들의 티켓을 지불했다 범주 형 변수 인 pclass가 있습니다

아, 그리고 그것은 수준이 명 목적이라는 것을 알고 있으므로 그것을 받아들입니다 일등석 객실은 1 등입니다 2 등석 객실은 2 등급, 3 등석 객실은 3 등급, 가장 싼 오두막 그리고 형제 자매와 배우자, sibsp, 형제 자매 및 / 또는 배우자 수 당신은 온보드했다 그래서 나는 항상 이것을 당신이 1을 가진 것처럼 해석합니다

아마 배우자 일 것입니다 당신이 1 이상을 가지고 있다면, 나는 많은 사람들을 생각하지 않습니다 타이타닉에서 두 명 이상의 배우자를 데리고 왔습니다 데이터가 준비되었으므로 이제 파이프 라인 탭으로 이동하여 파이프 라인을 클릭합니다 간단한 예측 모델링을 구축하는 것부터 시작하겠습니다 파이프 라인

데이터, 하위 노드 추가,지도 학습을 마우스 오른쪽 버튼으로 클릭하십시오 의사 결정 트리를 작성하겠습니다 또한 데이터를 마우스 오른쪽 버튼으로 클릭하고 추가합니다 하위 노드,지도 학습, 그라디언트 부스팅 해석 가능한 모델 인 의사 결정 트리가 있습니다

해석 할 수없는 모델 인 그라디언트 부스팅 모델 그라디언트 부스팅을 클릭하겠습니다 우리는 상당히 흥미로운 것을 발견 할 것입니다 모델 해석 기능을 켤 수 있다는 것을 알고 계셨습니까? 한 번의 클릭으로 우리는 단지 글로벌 통역 성을 열 것입니다 PD 도표를 클릭하여 모형 해석 성을 켭니다 실제로 몇 번 더 클릭하면 나머지 모델 해석 도구 PD 플롯을 클릭하면 아래로 스크롤합니다

현지 통역 가능성 ICE 플롯을 선택하겠습니다 LIME을 켜겠습니다 덧붙여 설명하겠습니다 우리가 실제로 할 때이 모든 것의 의미 결과를보십시오 그러나 당신은 당신이 정말로하지 않는 것을 알 수 있습니다 클릭하는 것의 의미를 알아야합니다 켜십시오

이 모든 설정을 기본값으로 두겠습니다 파이프 라인을 실행하십시오 그것이 실행되는 동안, 우리는 결정의 결과를 볼 것입니다 우리가 그것을 해석 할 수있는 방법을보기 위해 나무 그러나 궁극적으로 그래디언트 부스팅 모델은 조금 더 잘 수행합니다 약간 더 나은 모델입니다

사용할 수 있기를 원하지만 우리 만 우리가 이해한다면 받아 들일 수있어 모델이 어떻게 작동하고 해석하는지 그래서 우리는 다양한 모델 해석 도구를 켰습니다 의사 결정 트리의 결과를 살펴 보겠습니다 그런 다음이 개별 모델에 대해 이야기하겠습니다 해석 가능성 도표 결과를보고 실제로 시도하고 만들 수 있습니다 우리의 해석

의사 결정 트리를 마우스 오른쪽 버튼으로 클릭하고 결과를 선택합니다 의사 결정 트리를 해석 할 때 실제로 결정 트리 다이어그램은 이것이 바로 트리 다이어그램입니다 전체 화면으로 확대하고 확대 해 보겠습니다 그래서 우리는 즉시 봅니다 섹스를 기반으로 한 분할이 있습니다

여기는 수컷, 여기는 암컷입니다 우리는 생존이 1이고 죽는 것이 0이라는 것을 알 수 있습니다 그래서 우리는 여성이 훨씬 더 남성보다 타이타닉 침몰에서 살아남을 가능성이 높습니다 왼쪽의 남성 통로를 따라 가면 525 세 남성의 경우 기본적으로 5 살 이상입니다 약 82 %가 타이타닉이 침몰했을 때 죽었다

그래서 이것은 우리의 직감과 일치합니다 타이타닉에 대해 역사적으로 살펴보면 1800 년대 후반과 1900 년대 초에는이 철학이 있습니다 배가 가라 앉자 그들은 여자와 아이들을 먼저 구했습니다 이것은 당신이 여자가 아니고 아이가 아닌지를 나타냅니다 죽을 확률이 훨씬 높다 보트에있는 다른 사람들보다 따라서 전체 트리 다이어그램을 계속 해석 할 수 있습니다

그렇게하는 대신 결과로갑니다 Gradient Boosting 노드에서 실제로 의사 결정 트리 노드의 결과를 닫습니다 그라디언트 부스팅을 마우스 오른쪽 버튼으로 클릭하고 결과를 선택합니다 그래디언트 부스팅의 요약 결과를 얻습니다 모델이 실제로 얼마나 잘 수행했는지 알려줍니다 이 오류 그림과 같은 것들은 훈련 데이터, 검증 데이터 및 테스트를 보여줍니다 데이터

기본적으로 이러한 데이터의 평균 제곱 오차 나무 수의 함수로 모델에 나무를 더 추가 할 때 우리는 더 나은 성능을 얻습니다 그래디언트 부스팅 모델이 더 좋습니다 개별 의사 결정 트리보다 여기에 하나의 나무 그러나 더 이상 트리 다이어그램이 없습니다 이 모든 노드 결과를 스크롤하고 검색 할 수 있습니다

내 마음의 내용에, 나는 나무 다이어그램을 찾을 수 없습니다 존재하지 않기 때문입니다 이제 모델로 가야합니다 있던 해석 성 결과 이 모든 모델 해석 성을 켜면 생성됩니다 도구 모델 해석을 클릭합니다 부분 의존성 플롯으로갑니다 이제부터 살펴 보겠습니다 몇 가지 설명을 드리겠습니다

오른쪽에는 약간의 요약 설명이 있습니다 우리가 줄거리에서보고있는 것의 이것이 알림으로 유용하다고 생각합니다 하지만 때로는 이런 것들을 배울 때 이 자동 생성 텍스트는 약간 형식적입니다 그래서 나는 당신에게 방법에 대한 일종의 설명을 줄 것입니다 부분 의존도에 대해 생각합니다 그리고 우리는 그것들을 어떻게 만드는지 이야기 할 것입니다

우리가보고있는 것은 평균적으로 전체 데이터 세트에서 여성을 예측합니다 생존 확률 066 % 따라서 생존율이 66 %입니다 남성의 경우 평균 21 %의 생존 확률을 얻습니다 나이가 아닌 연속 변수 이산 변수, 우리는 지속적인 예측을 얻습니다 연령에 따른 다른 평균 예측에 대해 우리는 15 세 미만의 사람들에게 우리는 그들이 생존 할 가능성이 훨씬 높다 15 세 이상의 사람들보다 50 세 이상이면 차가운 북대서양에서 살아남을 수있는 기회 우리의 직관과 일치하는 꽤 내려갑니다 아이들을 먼저 구하고 특정 연령 이상의 사람들을 구했습니다 단순히 수영 능력이 없다 차가운 물에 아주 오랫동안

결과를 얻은 다음 질문을받습니다 이 결과를 어떻게 구성합니까? 실제로 이것을 생성하기 위해 무엇을 했습니까? 실제로 소프트웨어를 빨리 최소화하겠습니다 약간의 그림을하기 위해서 우리가하고있는 일을 설명하기 위해 잠깐만 나는 여기에 조금 엉켜있다 부분 의존도를 만들 때 전체 데이터 세트가 있다고 상상해보십시오 그리고 이것이 나이와 같은 입력이라고 가정 해 봅시다

그리고 이것들은 다른 모든 입력, 즉 섹스 등입니다 그리고 여기 우리가 될 것입니다 우리가하는 일은 예측하고 싶어 모든 원래 데이터 세트 이것들은 원래 숫자입니다 그런 다음 플러그인합니다 우리가 부분적으로 의존하고 싶다고 가정 해 봅시다 음모, 나이에 PD 음모

따라서 플러그인 연령은 1 인당 1입니다 우리는 상상하고 있습니다 타이타닉이라고 해봅시다 성인으로 채워지는 대신 우리는 1 세의 타이타닉을 보냈습니다 그러나 그들은 모두 같은 사람들이었습니다

그들은 모두 같은 특성을 가졌습니다 같은 섹스, 같은 클래스, 그들은 같은 돈을 보냈다 운임에 우리는 1 세인 모두에게 목표에 대한 예측 확률은 얼마입니까? 이 숫자를 모두 생성하므로 예측 열에 있습니다 여기에서 평균을 구합니다 모든 예측의 평균을 구합니다

이것이 부분 의존도의 요점이됩니다 저는 이것을 나이로 상상할 수 있습니다 그리고 이것은 평균 목표입니다 그리고 우리가 상상하는 것은 이제 우리는 나이 1의 가치를 얻었습니다 우리는 1을 가지고이 평균을 플러그인합니다

우리는 여기서 계산했습니다 이제이 과정을 반복하므로 지우개를 가져 와서 이 값을 지우십시오 이제 나이를 2로 바꿉니다 실수로 마우스 오른쪽 버튼을 클릭했습니다 실례합니다

그리고 또 다른 평균 예측을합니다 나이에 대한 결과는 2입니다 우리는 나이의 모든 다른 가치를 위해 이것을합니다 이제 소프트웨어로 돌아갑니다 실제로 우리는 줄거리를 볼 수 있습니다 아주 우연히 그려지지 않았습니다 결과를 모두 지우겠습니다

이제 부분 의존도를 살펴보면 우리는 이것을 기본적으로 산포처럼 본다 이 나이의 모든 다른 가치에 대한 음모 실제로 보시다시피 그들은 나이를 먹지 않았습니다 나이는 1, 나이는 2, 나이는 3입니다 그래서 우리는 모든 평균 예측을 얻습니다 목표 변수 이것이 우리에게 보여주는 것은 전체입니다 이 변수에 대한 모델의 생각 개별 효과를 씻어 내고 그러나 우리는 도움이되는 평균을 얻습니다 나이가 바뀌면 목표가 어떻게 변할 수 있는지 설명해주세요 예측

그래서 우리는 섹스를 위해 하나를 봅니다 이것은 여성이 남성보다 더 잘 생존한다는 것을 알려줍니다 나이가 들면서 젊은이들이 더 잘 살아남을 수 있습니다 나이든 사람들보다 이 모든 것은 여성을 구한 직관과 일치합니다 아이들이 먼저 운임을 보면 사람들을 볼 수 있습니다 운임이 더 비싼 사람 사람들보다 조금 더 잘 살아 남기 위해 요금을 더 낮게 지불 한 사람

내가 항상 생각하는 방식 더 많은 돈을 지불 한 사람들은 일류 오두막에 있었고 그래서 그들은 보트 위에있었습니다 가라 앉을 때, 그들은 훨씬 더 빨리 나왔습니다 바닥에 있던 사람들보다 아마도이 직선이 보입니다 운임에 100 달러 이상을 지불 한 한두 사람 만

이 사람은 기름 거물처럼 배 위에 집행 실이 있었어요 그래서 우리 모델은 실제로 알지 못합니다 그 사람들에 대해서만 예측하는 방법 한 가지 예가 있었으므로 기본적으로 일정한 예측을합니다 더 높은 요금 우리는 pclass를 볼 수 있으며 이것은 우리의 직감과 일치합니다 일등석은 생존율이 가장 높으며 두 번째 클래스는 낮고 세 번째 클래스는 가장 낮습니다 그리고 나는 형제 자매와 배우자가 해석하기 어렵다는 것을 알게됩니다

형제 자매 나 배우자가 세 명 이상인 경우 당신의 기회는 약간 낮았습니다 이 줄거리를 보면,이 변수를 알려줍니다 별로 중요하지 않습니다 목표 예측에 큰 영향을 미치지 않습니다 다른 변수로 이것이 부분 의존도입니다 그리고이 부분 의존도는 유용 할 수 있습니다

그러나 그들은 단지 우리에게 평균 정보를 보여줍니다 전체 데이터 세트에 대한 평균입니다 조금만 드릴 다운하려면 현지 정보가 많을수록 현지 통역이 필요합니다 도구 다음에 이야기 할 줄거리는 개별 조건부 기대 도표입니다 이 개별 조건부 기대 도표 부분 의존도와 매우 비슷한 일을하고 그러나 유사성에 따라 그룹으로 묶여 있습니다

결과에서 아래로 스크롤합니다 여기에 개별 조건부까지 기대 이제 클러스터 ID 1과 클러스터 ID 2의 두 클러스터가 있습니다 k는 클러스터링을 수행하여 이러한 클러스터를 생성했습니다 원래 입력 데이터에 대해 모든 유사성에 기반한 클러스터링 다른 입력 변수 그리고 우리는 본질적으로 부분 의존도는 무엇입니까? 그러나 이제는 클러스터 내에서 평균화되었습니다

아이디어는 클러스터 1에 대한 것입니다 우리는 평균 예측을 봅니다 클러스터 1의 모든 사람이 여성이라면 우리는 모든 사람을 평균화하기 위해 평균화를 수행합니다 클러스터 1 내 그리고 클러스터 1의 모든 사람이 남성이라면 우리는 클러스터 1 내에서 평균을냅니다 클러스터 2에 대해서도 동일한 작업을 수행합니다

여러면에서 우리는 같은 일을하고 있습니다 부분적 의존성으로 평균화하는 대신 전체 데이터 세트, 우리는 단지 평균입니다 데이터 집합의 하위 집합을 통해 이제 추상적으로 상상할 수 있습니다 개별 조건부 기대하기 클러스터를 사용하지 않고 각각의 개별 관찰 그리고이 줄거리에서- 숫자 플롯에서 조금 더 쉽습니다 우리가 나이를 보면 두 줄을 보지 않고 각 클러스터마다 1,309 개의 라인이 표시됩니다 타이타닉의 각 사람을 위해

물론 이것은 실제로 해석 할 수있는 음모가 아닙니다 더 높은 해상도로보기 위해 클러스터에서 수행합니다 또는 저해상도 뷰가 그것을 넣는 가장 좋은 방법이 되십시오 보다 높은 관점 각 개별 관찰을 확대했습니다 이것의 끝에서, 나는 그것을하는 데모를 줄 것이다 각각의 개별 관찰에 대해 한 번에 한 줄씩 보면 한 사람의 예측을 설명하는 방법

개별 조건부에서 중요한 부분 기대 도표는 이제 차이점을 볼 수 있다는 것입니다 클러스터 사이 우리가보고있는 것은 클러스터 2가 생존 확률 예측 일반적으로 클러스터 1보다 여성의 경우 089 대신 05입니다 남성의 경우 0

43 대신 02입니다 그러나 입력 간의 관계는 성별과 예측 확률의 관계 생존의 각 클러스터에 대해 동일합니다 클러스터 1 및 클러스터 2의 경우 여성 인 경우, 당신은 남자보다 살아남을 가능성이 더 큽니다 같은 관계가 보입니다

기본적으로 우리는 부분 의존성에서 본 것과 동일한 결과를보고 음모, 그것은 단지 두 개의 클러스터로 나뉩니다 이야기는 나이가 다릅니다 나이에 대한 부분 의존도를 살펴보면 우리는이 곡선, 기본적으로 금 곡선을 보았습니다 이는 클러스터 2에 해당합니다 우리는 보이는 곡선을 보지 못했습니다 씻겨 졌기 때문에 클러스터 1에서 이와 같이 우리가 평균했을 때

이것이 제안하는 것은 한 그룹의 고객- 이것은 단지 내 추측이지만, 이것들은 아마도 티켓에 대해 더 적은 돈을 지불 한 고객 세 번째 반에 있었는데 15 세 미만이라면 당신은 훨씬 더 살아남을 것입니다 그러나 다른 클러스터가 있었다 거의 모든 사람이 살아남을 수있는 고객 나는 이것을 아마도 우리의 부유 한 고객이라고 생각합니다 일류 오두막에있었습니다 클러스터 1의 사람들은 나이가 실제로없는 것 같습니다 예측 확률에 많은 영향을 미칩니다 생존의

그러나 클러스터 2의 경우 나이가 실제로 영향을 미칩니다 이것은 우리가하지 않을 정보의 종류입니다 부분 의존도에서 볼 수 있고 이 개별 조건을 사용해야합니다 그것을 밝히기 위해 기대 플롯 기본적으로 클러스터 1은 클러스터 2보다 작았습니다 우리가 평균화 할 때 씻겨 나옵니다 다른 것을 볼 수 있는지보고 싶습니다 이 음모의 나머지 부분에서

운임에 가면 클러스터 2가 클러스터 1보다 생존율이 훨씬 낮습니다 운임과 예측 확률의 관계 기본적으로 동일합니다 같은 모양의 곡선입니다 여기에 약간의 차이가 있습니다 하지만 약간 증가한 다음 레벨이 떨어집니다

운임을 위해, 우리는 같은 관계를 본다 부분 의존도에서 보았 듯이 pclass의 경우 다시 일치합니다 1 등석, 2 등석, 3 등석 서로 다른 두 개의 클러스터가있는 것 같습니다 클러스터 1, 1 등석과 2 등석은 매우 비슷합니다 클러스터 2에서 두 번째 클래스와 세 번째 클래스는 매우 비슷합니다 이 클러스터는 성별을 기반으로 한 것 같습니다

또는 그들이 보트에서 어디에 있었는지 실제로 이러한 클러스터로 드릴 다운해야합니다 그리고 소프트웨어는 점수 코드를 생성 할 수 있습니다 클러스터에서 원본 데이터를 클러스터에 할당 그들이 어디 있는지 봅니다 기본적으로 누가 어떤 클러스터에 있는지 확인하십시오 이제 부분 의존도에서와 같이 우리는 정말 흥미로운 것을 보지 못합니다 형제 자매와 배우자의 관계

우리는 다시 클러스터 2의 가능성이 훨씬 낮다는 것을 알았습니다 군집 1보다 생존율이 높지만 형제 자매와 배우자에게 어떤 영향을 미치는지 우리가 실제로 보지 못하는 생존율 흥미로운 관계 개별 조건부 결과를 닫을 것입니다 기대 도표 다음 모델 해석 가능성 결과는 로컬입니다 실례합니다

해석 가능한 지역 모델 해석 설명 이 지역 해석 가능한 모델 불가 지 설명 LIME 플롯 또는 LIME 모델입니다 E는 LIME에서 설명 용이기 때문입니다 기본적으로 로컬 선형 피팅을 수행합니다 사용하여 모델을 시도하고 설명하기 위해 국부적으로 선형 회귀

우리는 설명 할 수없는 모델을 가지고 있습니다 신경망이나 그래디언트 부스팅 모델처럼 우리는 그것을 사용하여 로컬로 설명하고 있습니다 기본적으로 데이터에만 로컬로 적합한 모델입니다 그래서 약간의 그림 그리기를 시작하겠습니다 여기에 단계를 설명하는 동안 잠시만

기본적으로 우리가하는 일은 해석 할 수없는 모델입니다 결정 경계를 그릴 것입니다 해석 할 수없는 모델 우리가 두 개의 축을 가지고 있다고 가정 해 봅시다 이것은 나이와 같은 것입니다 그건 그렇고, 나는이 그림을 만들고 있습니다 이것은 데이터가 아닙니다

이것은 단지 예시적인 도면입니다 나이와 요금이라는 두 개의 축이 있다고 가정 해 봅시다 원래 모델이므로 그라디언트 부스팅 모델입니다 해석 할 수없는 모델이이 결정을 생성 경계 파란색 영역의 포인트는 살아남을 사람들로서 적색 영역이 대응함에 따라 모델이 예측하는 사람들에게 죽을 것입니다

이것이 해석 불가능한 모델의 예측입니다 물론 이런 멋진 그림을 그릴 수 있다면 이것은 실제로 모델의 해석입니다 하지만 우리는 정상적으로 상상하고 있습니다 더 높은 차원이 될 것입니다 지금, 우리는 나이와 요금이 있습니다

실제 데이터에는 실제로 5 차원이 있습니다 내가 왜 그리지 않기로 선택했는지 알 것 같아 내가 할 수 없기 때문에 여기에 5 차원의 결정 경계가 있습니다 항상 2 차원 이상으로 시각화하기가 더 어렵습니다 그러나 여기서 해석 할 수없는 모델이 있습니다 검은 색 커서를 다시 잡겠습니다

우리가 바로 여기에있는 요점을 설명하고 싶다고합시다 우리는 왜이 점이 파란색으로 분류 되었는가? 이 사람은 왜 죽지 않고 살아 남았습니까? LIME 설명을 생성하기 위해 가장 먼저해야 할 일은 내가 전화해야 할 것 같아 저는 항상 LIME 다음에 무언가를 말하고 싶습니다 그러나 설명은 내장되어 있습니다 이 공간에서 데이터 포인트를 샘플링했습니다 기본적으로 나이와 공정한 가치를 선택합니다 샘플링 포인트에 불과합니다

여기에서 점을 선택하고 여기에서 점을 선택한다고 가정 해 보겠습니다 여기에서 점을 선택하고 여기에서 점을 선택합니다 여기서 포인트를 선택합니다 우리는 공간에서 몇 가지 점을 선택합니다 우리는이 점들을 적합하게 사용할 것입니다 로컬 선형 모델, 그리고 근처에 몇 점 더 있습니다

이 점을 선택하는 데 중요한 부분은 이것을 섭동 샘플이라고하겠습니다 관심 지점 근처에서 선택한 지점이 여기에 큰 X를 넣어야 할 것 같습니다 더 무겁게 가중 될 것입니다 우리의 관심 지점에 가까운 지점 더 커질 것입니다 그리고 멀리 떨어진 지점은 더 작아 질 것입니다

그리고 그것은 아마도 여기의 요점 일 것입니다 아주 작습니다 기본적으로 포인트를 선택하고 이 점을 사용하여 로컬 모델에 맞출 것입니다 관심있는 관찰에 더 가까운 점은 실제로 그들이 왜 살았는지 설명하고 싶은 사람입니다 그들이 죽었 기 때문에 더 커질 것입니다 로컬 선형 모델에서 더 많은 가중치를 부여 할 것입니다 우리가 그 지점을 생성하면 해석 할 수없는 원래의 점수를 사용하여 점수를 매길 것입니다 모델

이 지점은 파란색 영역에 있으므로 파란색이됩니다 이것은 파란색 영역에서 파란색입니다 이 지점은 빨간색 영역에서 빨간색이됩니다 이것은 적색 영역에서 더 큰 적색 점입니다 좀 더 크기 때문에 중간 크기의 정렬입니다

이것은 파란색 영역에서 큰 포인트입니다 파란색 영역에서 약간 작은 점일 수도 있고 파란색 영역에서 더 큰 점 그리고 우리가 그 포인트를 득점하면 해석 할 수없는 모델을 사용하여 이 샘플을 사용하여 국소 선형 회귀 분석을 시도하십시오 여기에 경계를 설명하십시오 그리고 이것은 기하학적 직관입니다 여기가 정말 가치 있다고 생각합니다

기본적으로 선형 근사를하고 있다는 것입니다 이 곡선에 이 파란색 곡선은 곡선 결정 경계입니다 우리는 실제로 설명 할 수 없으며 단지 그것에 선형 근사치를 생성 할 것입니다 강조하고 싶은 한 가지는 이 선형 근사법은 이 시점에서는 분명히 유효합니다 이 지역에서만 유효합니다 이 선형 근사도 이쪽의 결정 경계에 가깝게 접근하십시오

하지만 여기서 잘 작동합니다 이 선형 근사에는 계수가 있습니다 이 점이 왜이 큰 검은 색 x인지 설명하는 데 사용할 수 있습니다 끝이 아닌 경계의이 쪽에서 득점 이리 제가 강조하고 싶은 한 가지는 정말 건축에 도움이됩니다 직관은 우리의 관심 지점이라고합시다 실제로 여기에있었습니다 그런 다음 로컬 선형 모델은이 지역에 국한됩니다

우리는 이와 같은 것을 기대할 것입니다 그리고 물론 그것은 선이 아닙니다 죄송합니다 나는 그것을 다음과 같이 그려야했다 이것이 직선 인 척하자

나는 통치자가 아닙니다 그리고 여기 아이디어는 이런 종류의 수학은 Taylor 확장 또는 미적분에 익숙합니다 기본적으로 커브를 충분히 확대하면 직선처럼 보입니다 우리가이 지점들에 가깝게 확대하면 비선형에 가까운 선형 모델을 생성 할 수 있습니다 우리가 가진 결정 경계 그래서 그것은 많았습니다

우리는 소프트웨어로 돌아가서 이 선형 모델의 결과에서 우리가 그것들을 어떻게 해석 할 수 있는지보십시오 계속 진행하겠습니다 아래에 무엇이 있는지 볼 수 있습니다 시작하겠습니다 다음은 로컬 모델의 요약입니다

가장 먼저 눈에 띄는 것은 Cluster Centroid 1이라는 단어 따라서 각 점에 로컬 모델을 맞추는 대신 우리 데이터에서 1,309 포인트가됩니다 1,309 개의 현지 모델이 우리는 그것들을 클러스터에 맞 춥니 다 ICE를 할 때와 마찬가지로 클러스터링을했습니다 우리가 볼 필요가 없도록 분리 각각의 관찰에서 이 경우 클러스터를 구축하고 클러스터 중심을 우리가 주변의 포인트 역할을 로컬 모델 생성 제가 보여준 큰 검은 x 그것은 우리가 설명하려는 사람 일 수 있습니다

이 경우에는 클러스터의 중심이됩니다 그래서 우리는 서로 다른 두 가지 로컬 모델에 적합합니다 하나는 클러스터 중심 1 및 하나는 클러스터 중심 2, 모수 추정값을 볼 수 있습니다 각 클러스터 중심에 대해 그리고 이것은 로컬 선형 모델입니다 우리는 얼마나 잘했는지 평가할 수 있습니다

그 결과를 닫아서 플롯을 볼 수 있습니다 이것이 말하는 것은 Cluster Centroid 1에서 대부분의 관측은 여성의 성관계를 가졌으며 여성이라는 것이 생존 가능성을 높였습니다 클러스터 1에서 대부분의 사람들은 클래스 1을 가졌습니다 그들은 일류 오두막에 있었고 또한 생존율이 향상됩니다 여성보다 약간 적습니다

그리고 다시, 그것은 우리와 일치합니다 먼저 여자와 아이들을 구했습니다 그러나 일반적으로 예상대로 일류 오두막의 사람들은 아마도 더 나은 서비스를 받고 출구에 더 가깝습니다 그리고 우리는 형제 자매와 배우자가 목표를 예측하는 데 훨씬 덜 중요합니다 그래서 우리는 그것이 여성 인 것처럼 보입니다 일등석에서 정말 Cluster Centroid 1에서 관찰 한 대부분의 결과 살아남을 것으로 예상됩니다

Cluster Centroid 2로 가면 그들의 성별이 남성임을 알 수 있습니다 생존율을 낮추고 그리고 그들의 수업은 3 등입니다 또한 생존율을 낮 춥니 다 다시 한번, 형제 자매와 배우자가없는 타이타닉 승객 대부분이 일종의 생존 가능성이 약간 향상됩니다 그러나 3 등석과 남성에서의 상쇄는 아닙니다 이 결과를 닫고 같은 것을 봅니다 구간 변수의 경우

나이는 목표에 대한 부정적인 예측 인자입니다 나이가 많을수록 당신은 살아남 아야합니다 운임은 긍정적 인 예측 자입니다 더 많이 쓸수록 생존 할 확률이 높아집니다 이것은 나이가 예측에서 훨씬 더 중요하다는 것을 알려줍니다

운임보다 당신의 생존 Cluster Centroid 2를 살펴보면 동일한 관계가 나타납니다 그게 우리가 찾은 관계 야 부분 의존도에서 나이는 부정적인 예측 자, 운임입니다 생존 가능성에 대한 긍정적 인 예측 이 결과를 닫겠습니다 우리는 또한 지역 적합 통계를 볼 수 있습니다 모델이 얼마나 잘 수행했는지 확인합니다

로컬 모델은 실제로는 아닙니다 누가 살았고 누가 살았는지 예측하려고 누가 예측했는지 예측하려고합니다 그라디언트 부스팅 모델로 살아남거나 생존 할 수 있습니다 기본적으로 실제 목표를 예측하는 대신 예측을 모방하려고합니다 해석 할 수없는 비선형 모델의 기울기 원래 맞는 부스팅 모델

계속해서 결과를 닫을 게요 계속해서 개별 관찰에 대해 이야기하십시오 그래서 우리는 개별 조건부 ICE 플롯을했습니다 기대와 LIME– 지역 해석 가능 모델에 무관 한 설명 클러스터에서이 작업을 수행했습니다 이제 개별 관찰로 할 수 있습니다

그래디언트의 아래쪽으로 스크롤합니다 부스팅 지역 통역 성을 열겠습니다 아래로 끝까지 스크롤합니다 General ICE / LIME Options를 열겠습니다 다시 아래로 스크롤하십시오 설명 할 인스턴스 유형 클러스터 중심에서 전환하겠습니다 개별 관찰에

여기에 숫자가 필요했습니다 key_ID가됩니다 변수를 설정했을 때를 기억한다면 변수를 키로 설정했습니다 그것은 key_ID였습니다 그냥 1을 입력하겠습니다

이것은 우리의 데이터 세트에서 첫 번째 관찰입니다 데이터를 열어서 볼 수 있습니다 나는 이것이 엘리자베스 앨런 양이라고 생각합니다 그리고 그녀는 살아남은 29 세의 여성이었습니다 모델이 예측 한 이유를 설명하겠습니다

그녀를 위해 예측 한 것 일단이 변경을하면 파이프 라인을 다시 실행할 것입니다 개별 조건부 기대치를 생성합니다 지역 해석 가능한 모델 불가지론 적 설명 이 하나의 관찰에 대해서만 우리가 그 그림으로 되돌아 가면 기본적으로 LIME 플롯을 그렸습니다 이 x가 클러스터 센터가 아니라 x는 이제 Allen Allen입니다 그래서 그녀의 나이, 그녀의 운임, 그리고 그녀의 수업이 될 것입니다 그 모든 정보

그래디언트 부스팅을 마우스 오른쪽 버튼으로 클릭합니다 결과를 선택하겠습니다 Model Interpretability로갑니다 모델의 결과는 바뀌지 않아야합니다 변경된 것은 해석 가능한 결과입니다

이제 개별 조건을 전체 화면으로 보여 드리겠습니다 기대 우리는 그녀가 여자 였기 때문에 볼 수 있습니다 그녀의 생존 확률은 086 일 것으로 예상되었으므로 86 %입니다

그녀가 남성이라면 생존 가능성 약 40 %입니다 데이터에서 기억하는 그녀의 나이는 약 29 세였습니다 여기 어딘가에 그녀의 확률에 대한 예측은 다음과 같습니다 다른 연령대의 생존 그리고 이것은 우리에게 다소 예상치 못한 결과를줍니다

그녀가 더 어리면 우리는 실제로 그녀가 생존 할 가능성이 적을 것으로 예상합니다 그리고 그녀가 나이가 많으면 우리도 그녀가 생존 할 확률이 낮을 것으로 예상합니다 이것은 현재 평균화되지 않았 음을 기억하십시오 우리가 값을 변경한다면 이것은 단지 예측입니다 그녀의 모든 특성을 동일하게 유지합니다 그녀는 일등석에 있었고 여자였습니다 우리는 모델이 그녀를 어떻게 생각하는지 평가합니다 나이를 바꾸면 주목해야 할 것은 그녀가 항상 여자를 유지해 예상되는 생존 확률은 꽤 높으며 무엇이든 상관없이 0

75 이상이 될 것입니다 운임과 같은 다른 것을 볼 수 있습니다 우리는 같은 관계를 봅니다 pclass– 우리는 그녀가 1 등석인지 2 등석인지를보고 그녀는 같은 확률을 얻습니다 하지만 그녀가 3 등석에 빠졌다면 그녀의 생존 확률은 낮아질 것입니다

이런 종류의 직감과 일치 1 등석과 2 등석의 여성들이 꽤 높은 속도로 살아남을 수있었습니다 3 등석의 여성들은 그다지 살아남지 못했습니다 물론, 3 등석의 남성은 가장 잘 살아 남았습니다 일반적으로, 3 등석의 사람들은 일등석과 이등 석의 사람들만큼 많이 만드십시오 결과를 닫고 로컬 모델을 살펴 보겠습니다

이제이 로컬 모델은 그녀의 관찰에 따라 다릅니다 그녀의 근처 어딘가에 유효합니다 그리고 이것은 실제로 설명입니다 앨런 양을 생존자로 분류 한 이유는 죽은 사람에게 우리가 섹스를 보면 그녀는 여자 였고 생존 가능성을 극적으로 향상시킵니다 그녀는 일등석에 있었고, 또한 향상 그녀의 생존 가능성

형제 자매와 배우자와 같은 관계를 큰 영향을 미치지 않는 곳 우리는 또한 지역 설명을 봅니다 구간 변수의 경우 우리는 그녀의 나이가 실제로 감소한 것을 본 그녀의 생존 가능성 로컬 모델로 돌아가서 우리는 개별 조건부 기대에서 보았다 그러나 현지 설명은 아마도 더 유효한 설명이기 때문에 이 로컬 선형 모델에 적합합니다

그리고 우리는 그녀의 운임을 본다 그녀는 티켓에 211 달러를 썼기 때문에 꽤 비싼 티켓을 얻었습니다 아마도 그녀가 생존 할 가능성이 가장 높은 이유 일 것입니다 부유 한 귀족 이 결과를 닫겠습니다

다른 관찰을 위해이 과정을 거칠 수 있습니다 이 도구를 사용하는 방법은 누군가가 그들이 얻은 방식으로 왜 득점했는지 알고 싶어합니다 당신의 모델에서, 당신은 지역 관측을 끌어낼 수 있습니다 특정 개인 또는 관찰을 위해 데이터에서 주변 지역 모델을 만들 수 있습니다 그들이 왜 자신을 분류했는지 설명하고 설명하기 위해 했다 결과를 닫겠습니다

하루가 끝나면 이제 채점을합니다 그 모델을 사용하여 해석 할 수있는 부스팅 모델 해석 성 결과 물론 모델 해석 결과 입력을 해석 할 수있는 경우에만 의미가 있습니다 그리고 그것은이 토론에 대한 큰 메시지입니다 당신이 무슨 일을하든 상관없이 모델을 해석하려면 입력 내용을 이해하기 위해 실제로 모델 해석 성을 사용하려고합니다 이유에 대한 설명이나 이야기가 나오는 결과 당신의 예측은 그들이하는 방식입니다 입력을 기반으로합니다

모델 해석성에 대해 많이 배웠기를 바랍니다 모델 해석 도구 중 일부 우리는 SAS Viya에 있습니다 SAS Users 채널을 구독하려면 클릭하십시오 도움이되는 몇 가지 질문에 대답하려면 여기를 클릭하십시오 더 나은 비디오를 만들고 여기 아래에 일부는 데이터와 일부에 대한 링크 보다 자세하게 설명하거나 멋진 리프레쉬를 제공하는 논문 우리가 말한 것에 대한

Executing SAS Code in SAS Visual Data Mining and Machine Learning Pipelines

안녕하세요, 저는 SAS의 Wendy Czika입니다 SAS Visual Data Mining and Machine에서 SAS Code 노드 사용 Model Studio 애플리케이션의 일부인 파이프 라인 학습 SAS Visual Data Mining and Machine Learning 파이프 라인 사용하기 쉬운 대화식 환경 제공 복잡한 기계 학습 모델을 구축 할뿐만 아니라 또한 프로세스를 시각화 재사용 가능한 파이프 라인을 만듭니다

이 환경은 여러면에서 비슷합니다 SAS Enterprise Miner에게 그 점에 익숙하지만 SAS 플랫폼을 현대화하는 SAS Viya에 살고 있습니다 이 파이프 라인에서 순차적 단계는 결 측값 대치, 선택 등 수행 사용할 중요한 변수와 여러 후보 앙상블 모델을 포함한 예측 모델 마지막 단계는 모든 모델을 비교하는 것입니다 이 파이프 라인에서이 데이터의 챔피언을 결정하십시오 파이프 라인 내의 각 노드에는 해당 세트가 있습니다 개인의 필요에 맞게 조정할 수있는 속성 여기에서 Forest 노드와 관련된 속성을 볼 수 있습니다 오른쪽 패널에서 또한 왼쪽의 패널을 확장하면 매우 포괄적 인 노드 모음이 있습니다

SAS Visual Data Mining & Machine learning 내에서 사용 가능 제품 – 데이터 전처리,지도 학습, 그리고 더 엄청난 금액이 있지만 손끝에서 사용할 수있는 기능 이 노드 모음과 수많은 노드를 통해 각 노드 내의 속성에 따라 모델 빌딩에 기능을 추가하려고 정의 된 노드에서 다루지 않는 프로세스 제품에서 SAS Visual Data Mining 내에서 파이프 라인을 확장하는 방법 & Machine Learning에서이 사용자 정의 코드를 포함 하시겠습니까? 물론 SAS 코드 노드! 스크린 샷에서 볼 수 있듯이 SAS Code 노드는 Miscellaneous 그룹화에서 사용할 수 있습니다 왼쪽에 노드의 즉, 어디서나 드래그 앤 드롭 할 수 있습니다 파이프 라인 내에서

다른 Model Studio 노드와 마찬가지로 SAS 코드 노드에는 이와 관련된 속성이 있습니다 오른쪽에서 볼 수 있듯이 몇 가지 세부 사항을 신속하게 지적하겠습니다 코딩 환경 자체의 클릭하면 가져 오는 편집기입니다 코드 노드의 속성 시트에서 "열기" 왼쪽에는 매크로와 매크로가 있습니다 변수는 범주별로 그룹화되어 정의됩니다 생산성 향상에도 도움이됩니다

일반화 가능성에서와 같이 여기에 두 개의 창이 있습니다 하나는 훈련 코드 용입니다 하나는 코드를 점수 매기기위한 것입니다 예제를 보여줄 때 편집기에는 구문 색상 표시 및 자동 완성 기능이 포함되어 있습니다

"Proc Prin"을 입력하면 다음과 같이 표시됩니다 당신은 또한 능력이 있습니다 기존 코드를 열려면 파일, 복사 / 붙여 넣기 등에 저장했습니다 모든 SAS 코딩 환경에서 볼 수 있듯이 이제 세 가지 방법에 대해 이야기하겠습니다 일반적으로 SAS Code 노드를 전처리 노드로 사용합니다 새로운 변수를 생성하거나 메타 데이터를 수정합니다 감독 학습 노드로서의 변수 예측 모델 또는 데이터 요약과 같은 작업 시각화

첫 번째 사용 사례는 SAS 코드를 사용하여 강조 모델 구축 전에 데이터를 전처리하기위한 노드 기능 엔지니어링을위한 작업에서 무엇이든 가능합니다 데이터 필터링 또는 하위 설정 이외의 다른 변수에 대한 메타 데이터를 변경할 수도 있습니다 당신의 목표 – 이것의 예는 변수의 변경을 포함합니다 역할, 측정 수준, 대치 방법 등 Model Studio의 데이터 탭에서이 작업을 수행 할 수 있습니다 또는 변수 관리 노드에 있지만 기능이 필요할 수 있습니다

프로그래밍 방식으로 변경하십시오 SAS에서 SAS 코드 노드 사용에 익숙한 경우 Enterprise Miner, 중요한 정보를 알아야합니다 차이 Enterprise Miner의 작동 방식과 달리 데이터 사본은 각 노드에 대해 순서대로 저장되지 않습니다 필요한 공간을 줄입니다 즉, 교육 데이터를 직접 수정할 수 없습니다 변수 값을 변경하거나 관측 값을 삭제하여 파이프 라인에서 사용중인 데이터 SAS Visual Data Mining 및 Machine Learning 내 스코어링 코드를 통해 새 변수를 작성해야만 수정할 수 있습니다

나중에 나는 당신이 어떻게 하는지를 보여줄 것입니다 이제 SAS 코드를 사용하는 방법을 살펴 보겠습니다 지도 학습을위한 노드 유연성을 추가하는 데 가장 도움이됩니다 추가적인지도 학습 알고리즘 또는 옵션을 가져 오기 위해 표시되지 않을 수있는 프로세스 흐름으로 기존 노드에서 이 사용 사례에 대해 언급하고 싶은 몇 가지 팁이 있습니다 먼저 SAS 코드 노드에 올바르게 플래그를 지정해야합니다 지도 학습 노드로 이를 위해서는 파이프 라인에 노드를 추가 한 후 그것을 클릭하고 이동을 선택하십시오

지도 학습을 선택할 수 있습니다 일단 거기로 옮기면 치료됩니다 지도 학습 노드로 이것은 코드를 설정하면 계산을위한 스코어링 코드 생성 DATA 단계 (또는 DS1)로서의 예측 스코어링 코드 또는 분석 저장소 제공된 매크로 변수를 사용하여 그런 다음 모델 평가 자동으로 수행되며 모델 모델 비교에 포함됩니다 파이프 라인의 다른 모델과 함께 둘째, 동일한 옵션이 있습니다 다른 Supervised와 마찬가지로 SAS 코드 노드 모델을 배포 학습 모델 마지막으로 모델 해석 가능성 속성 켤 수있게됩니다 모델을 설명하는 데 도움이되는 다양한 방법을 수행 -어떤 변수가 중요한지 그들이 어떻게 전세계 수준에서 예측에 영향을 미치는지 또는 개인 또는 클러스터를보고 로컬로

마지막으로 세 번째 사용 사례는 데이터 요약을 위해 SAS 코드 노드 사용 시각화 선호하는 SAS 절차를 사용하여 ODS 출력을 생성 할 수 있습니다 또는 dmcas_report 매크로를 사용하여 자신 만의 플롯을 만들 수 있습니다 파이프 라인의 데이터 이 매크로를 사용하면 맞춤형 보고서를 만들 수 있습니다 막대 차트, 계열 도표, 파이와 같은 결과 차트, 산점도 및 테이블 이 경우 SAS 코드 노드는 일반적으로 터미널입니다 스코어링 코드를 생성하지 않으므로 파이프 라인의 노드 또는 메타 데이터 변경 자,이 모든 용도의 예를 살펴 보겠습니다 Model Studio의 파이프 라인 사례 SAS Visual Data Mining 및 Machine Learning의 응용 프로그램

전처리를 포함하는 것으로 시작하겠습니다 예 여기를 클릭하여 코드 편집기를 열 수 있습니다 노드에서 열기를 선택하거나 속성 패널에서 앞서 언급했듯이 하나의 일반적인 전처리 작업 SAS 코드 노드에서 수행 할 수있는 관측의 일부를 배제 훈련 데이터 또는 필터링에서 간단한 몇 줄의 코드로이 작업을 수행 할 수 있습니다 다음은 모두 제외하려는 필터링의 예입니다 "Sales"또는 "Self"이외의 변수 JOB 값 내 훈련 데이터

앞에서 언급했듯이 원하는 데이터 수정 후속 노드로 전달하려면 스코어링 코드 내에서 수행해야합니다 데이터를 직접 수정할 수 없습니다 여기에 다음과 같은 모습이 있습니다 데이터의 하위 집합을 원합니다 여기에 표시되는 두 개의 창은 최신 릴리스의 새로운 기능입니다

SAS 비주얼 데이터 마이닝 및 머신 러닝 84 이것은 어떤 것을 입력하는 것이 매우 간단합니다 스코어링 편집기에서 직접 스코어링 코드 그래서 실제로 볼 수있는 곳에서 시작하겠습니다 이 필터 플래그를 작성하기위한 스코어링 코드 0 변수 JOB의이 두 값에 대해서는 그렇지 않으면 1입니다 교육 코드 창에서 통화를 포함 시켰습니다 dmcas_metachange 매크로에 이 매크로는 새로운 filter_flag 변수의 역할을 설정합니다 우리는 방금 필터로 만들었습니다 그리고 해당 레벨의 BINARY

모든 후속 노드에이 변수를 사용하도록 지시합니다 필터링 정의로 이 코드 노드 다음에 오는 모든 노드는 자동으로 선택됩니다 이 필터 및 JOB 값이 다른 관측치 SALES 또는 SELF보다 교육에서 제외됩니다 데이터 이것은 전처리의 한 예일뿐입니다

내가 언급했듯이 여기에서 새로운 기능을 엔지니어링 할 수 있습니다 프로그래밍 방식으로 변경되는 다른 입력의 함수입니다 메타 데이터 – 예를 들어 GitHub 리포지토리에는 코드가 있습니다 입력의 왜도를 계산하기 위해 그런 다음 왜도> 3의 변형 설정 후속 변환에 적용될 로그에 마디 다음으로지도 학습 예제를 살펴 보겠습니다

앞에서 언급했듯이 SAS 코드 노드를 사용하려면 지도 학습 노드로 클릭하면 이동을 선택하십시오 이동 한이 SAS 코드 노드를 볼 수 있습니다 모델 해석에 대한 사후 훈련 속성 이제 선택할 수있게되었습니다 이 예에서는 간단하게 실행 중입니다 gradboost 프로 시저를 사용한 그라디언트 부스팅 모델 이것은 그라디언트가 있기 때문에 설명을위한 것입니다

부스팅 노드가 이미 있습니다 여기에서 & dm_Data 매크로를 사용하고 있음을 알 수 있습니다 프로젝트 데이터뿐만 아니라 다수를 참조하는 변수 proc에 내장 된 매크로 중 gradboost 전화 예를 들어 % dm_class_input, % dm_dec_target, % dm_interval_input 이렇게하면 코드가 훨씬 단순해질뿐만 아니라 또한 일반화 가능한 코드를 작성합니다 데이터, 변수 이름 또는 파일 이름이 보이지 않습니다 여기에 하드 코딩되었습니다

이 SAS 코드 노드를 Exchange에 저장하려면 Model Studio 내의 다른 프로젝트에서 완전히 다른 데이터라면 쉽게 할 수 있습니다 24 행에는 매크로 변수가 있습니다 파티션 문에 대해 자동으로 파티션 변수의 값을 나타냅니다 검증 및 테스트 관찰을 정의합니다 이 예에서 29 행을 계속합시다 여기에 SAVESTATE 문이 포함되어 있습니다 proc gradboost에서 분석 저장소 점수를 요청 파일이 생성됩니다

dm_data_rstore 매크로 변수를 전달합니다 이 스코어링 파일은 적절한 위치에 저장됩니다 데이터 단계 스코어링 코드를 작성하는 프로 시저의 경우 대신 CODE 문을 사용하십시오 dm_file_scorecode와 함께 여기 주석에 표시된 것처럼 매크로 변수 이 특정 절차의 경우 실제로 점수 코드를 생성하기 위해 두 가지 방법을 사용할 수 있지만 그래디언트 부스팅 머신의 스코어링 코드 이후 이 경우 꽤 길어질 수 있습니다 분석 저장소를 사용하는 것이 좋습니다 이는 스코어링 코드의 이진 표현입니다

proc gradboost 호출 후 여기에 지정된 두 개의 dmcas_report 매크로를 볼 수 있습니다 일부 보고서를 결과에 추가합니다 둘 다 생성 된 VarImp ODS 테이블을 사용하는 것을 볼 수 있습니다 proc gradboost에서 첫 번째 dmcas_report 호출 요청 테이블이 표시되고 두 번째는 막대 차트를 요청합니다 상대적 중요성의

우리는 이것을지도 학습 노드로 표시했기 때문에 평가 테이블 및 플롯도 자동으로 표시됩니다 결과에서 결과를 열어보기 전에 모든 것을 볼 수 있습니다 PD 플롯을 확인했음을 보여 드리고자합니다 모델 해석 그룹의 확인란 속성 이것은 부분 종속성 플롯을 요청합니다

그래디언트 부스팅 모델을 설명하는 데 도움이됩니다 결과를 살펴 보겠습니다 결과에서 SAS 코드를 볼 수 있습니다 제출 한 다음 요청 된 두 개의 보고서 dmcas_report 매크로 사용 – 변수 테이블 친척을 나타내는 중요성과 막대 차트 내림차순으로 중요합니다 평가 탭을 클릭하고 적합 통계를 볼 수 있습니다 예측 보고서 – 여기에 목표 간격이 있습니다

하지만 바이너리 타겟이 있다면 리프트와 같은 것을 볼 수 있습니다 차트 및 ROC 유형 도표 마지막으로 모델이 있음을 알 수 있습니다 해당 속성 중 하나가 바뀌 었으므로 해석 가능성 탭 의 위에 여기서 가장 중요한 5 가지 변수를 볼 수 있습니다 그들의 가치는 우리의 목표에 대한 예측에 영향을 미칩니다 자연어 생성 텍스트와 함께 줄거리를 설명합니다 다시 한번, 평가와 모델을 모두 얻을 수 있습니다 긴 모델에 대한 해석 성 데이터 단계 또는 분석 상점 점수 코드로 열을 생성하기 위해 생성됩니다 또는 예측 열

마지막 예제는 SAS Code입니다 전처리 노드 이후 또는 관리 대상 노드 학습 노드를 생성하여 데이터를 시각화하거나 탐색 맞춤 보고서 코드를 보자 다음은 두 가지 작업을 수행하는 간단한 데이터 단계입니다 먼저, 노드로 전달되는 데이터의 서브 세트를 가져옵니다

– 이들은 수백만을 가질 수있는 프로젝트 데이터입니다 산란에서 읽기 어려운 관측치 우리는 200의 부분 집합을 취합니다 둘째, 목표로 남은 변수 그래디언트 부스팅 모델에서 예측을 뺀 값입니다 그런 다음 dmcas_report 매크로를 사용하여 산점도를 만듭니다 0에서 y 참조 선과 함께 예측으로 잔차를 시각화하는 데 도움이됩니다 결과는 다음과 같습니다

잔차가 무작위로 보이는 것처럼 보입니다 기준선 주위에 분포하고 어떤 종류도 전시하지 않음 패턴의 – 그래서 그것은 단지 좋은 빠른 확인입니다 한 종류의 시각화의 예로서 잔차의 당신은 할 수 있습니다 여기서 유용한 링크로 끝내고 싶습니다 특히 Git Hub 리포지토리에 여러 SAS 코드 노드가있는“sas-viya-dmml-pipelines” 예제를 계속 추가하십시오 감사합니다!

SAS Demo | Deep Learning with Python (DLPy) and SAS Viya for Computer Vision

안녕하세요, 저는 Susan Kahler이고 인공 지능과 기계 학습에 대한 책임이 있습니다 SAS에서

이 비디오에서는 SAS Deep Learning Python API 또는 DLPy에 대해 간략하게 설명합니다 이 시리즈는 DLPy가 지원하는 최신 컴퓨터 비전 모델에 중점을 둘 것입니다 DLPy를 통해 Python에 익숙한 데이터 과학자는 딥 러닝을 활용할 수 있습니다 SAS Viya의 컴퓨터 비전 기능 설명의 링크를 사용하여 주제로 직접 이동하십시오

첫 번째 섹션에서는 DLPy와 함께 Functional API를 활용하여 빌드하는 방법을 살펴 봅니다 ResNet 모델을 포함한 기능 추출을위한 복잡한 모델 다음으로 축구를 추적하기 위해 U-Net 모델을 사용하여 이미지 세분화를 수행하는 방법을 살펴 보겠습니다 선수 그런 다음 DLPY가 VGG16을 백본으로 사용하여 Faster R-CNN을 사용하여 객체 감지를 지원하는 방법을 살펴 보겠습니다 회로망

스위칭 기어, DLPy가 어떻게 MobileNet 및 ShuffleNet을 지원하고 성능을 비교하는지 살펴 보겠습니다 ResNet50 모델이있는 모델 중 하나입니다 마지막으로 훈련과 추론 모두에서 멀티 태스킹 학습이 수행되는 방법을 살펴 보겠습니다 제품 권장 사항에 대해서는 소매 도메인에서 추론을 위해 Python 용 이벤트 스트림 처리 패키지 인 SAS ESPPy를 사용합니다 DLPy에는 Python 3 이상 및 SAS Viya 34가 필요합니다

또한 Analytics 전송을위한 SAS 스크립팅 래퍼 또는 SWAT 패키지가 필요합니다 DLPy는 python-dlpy 디렉토리의 SAS 소프트웨어 용 GitHub에서 사용할 수 있습니다 이 비디오에 실린 Jupyter 노트북도 해당 위치에 있습니다 DLPy의 최신 컴퓨터 비전 기능에 대해 배우고 즐기시기 바랍니다 스스로를 위해

안녕하세요, 저는 SAS의 데이터 과학자 인 Wenyu이며 딥 러닝과 컴퓨터에 중점을 둡니다 비전 API 이 비디오에서는 고급 Python API, Python을 사용한 SAS Deep Learning 또는 (DLPy) 이 비디오의 목적은 SAS에서 기능적 API를 활용하는 방법을 보여주는 것입니다 복잡한 모델을 만들기위한 DLPy 보다 유연한 방법을 제공하기 때문에 Functional API에 중점을두고 있습니다

Keras Functional API와 매우 유사한 복잡한 모델을 구현하십시오 Sequential API는 공유 모델을 만들 수 없다는 점에서 제한적입니다 레이어 또는 여러 입력 또는 출력이 있습니다 입력 및 출력이 여러 개인 모델이 Functional API를 사용하는 좋은 예입니다 간단한 6 단계로 SAS DLPy를 사용하여 모델을 생성 해 봅시다

텐서를 반환하는 Input ()에 의해 두 개의 텐서 (회색조 이미지와 RGB 이미지)를 정의합니다 목적 그런 다음 그레이 스케일 이미지가 두 개의 컨볼 루션 브랜치에 공급됩니다 이 모델에는 또 다른 입력 컬러 이미지가 있습니다 그런 다음 이미지의 특징을 추출하기 위해 컨벌루션 연산이 사용됩니다

세 개의 텐서가 연결되고 OutputLayer_1에서 분류를 계산하는 데 사용됩니다 손실 또한 모델은 OutputLayer_2를 통해 감독됩니다 그런 다음 정의 된 입력 텐서 및 출력 텐서를 Model () 함수에 전달합니다 마지막으로 compile ()을 호출하여 네트워크를 컴파일합니다

여기서는 모델의 요약과 네트워크 그래프를 보여줍니다 레이어 연결 이 다음 모델에서는 ResNet 유사 모델을 작성하는 방법을 고려하십시오 이 작업에서는 돌고래 또는 기린을 포함하는지 여부에 따라 이미지를 분류합니다 먼저 각각의 직후에 배치 정규화를 채택하는 회선 블록을 정의합니다

회선 다음으로, 나머지 블록 내에서 바로 가기 연결을 사용하여 입력 기능을 연결합니다 컨볼 루션의 출력에 4 개의 누적 잔차 블록이 있으며 네트워크는 전체 평균 풀링으로 끝납니다 다음은 순차적으로 누적 된 4 개의 잔차 블록과 전역 평균을 보여주는 모델의 그래프입니다 풀링

모델이 빌드되면 ImageTable API에 의해 데이터가로드되고 모델을 학습 할 수 있습니다 순차적 인 모델처럼 SAS DLPy API를 사용하면 사전 훈련 된 여러 출력 모델을보다 쉽게 ​​정의 할 수 있습니다 기능 추출기로서의 백본 다음 경우에는 가중치와 함께 ResNet18 모델을로드합니다 다음으로로드 된 모델을 기능 모델로 변환하고 원래 작업 계층을 삭제합니다 이를 위해 to_functional_model ()을 사용하고 stop_layers를 지정합니다

그래프 이동을 중지하는 레이어 즉, stop_layers와 stop_layers가 뒤에 오는 모든 레이어가 제거됩니다 기능적 모델 그런 다음 OutputLayer와 Keypoints Layer라는 두 가지 새로운 작업 계층을 추가합니다 그래프 하단에서 새로 추가 된 두 개의 레이어를 볼 수 있습니다

이 비디오에서는 DLPy를 사용하여 여러 입력 및 출력을 가진 모델을 만든 다음 ResNet과 유사한 모델이며 마지막으로 순차 모델을 기능 모델로 변환했습니다 시청 해주셔서 감사합니다 안녕하세요, 저는 Maggie Du이고 SAS의 기계 학습 개발자이며 딥 러닝 및 컴퓨터 비전 API 이 비디오에서는 DLPy라고하는 SAS 고급 딥 러닝 Python API를 사용하여 게임에서 축구 선수를 추적하는 이미지 분할 문제를 해결하는 방법을 보여줍니다 각 플레이어에 대한 통계를 제공합니다

코치에 의한 경기 후 분석과 같은 여러 목적으로 통계를 사용할 수 있습니다 팬들에게 증강 게임 시청 경험을 제공합니다 이미지 분할은 이미지를 의미 적으로 의미있는 부분으로 분할하려고 시도합니다 각 부분을 사전 정의 된 레이블 중 하나로 분류합니다 따라서 픽셀 수준에서 이미지를 이해하는 새로운 방법입니다

예를 들어이 이미지에는 개, 고양이 및 배경의 세 가지 클래스가 있습니다 따라서 우리는 각 픽셀에 어떤 클래스가 속하는지를 나타내는 특정 색상을 부여합니다 전반적으로 각 객체의 정확한 경계를 얻을 수 있습니다 시작하자 필요한 모듈을로드 한 후 데이터 세트를로드하려고합니다

우리는 축구 경기의 이미지를 예로 들어 170 이미지가 포함 된 모두 256 * 256으로 조정되었습니다 다음은 원시 이미지와 해당 주석의 시각화입니다 이미지에는 축구 선수, 축구 공 및 배경의 세 가지 다른 객체가 있습니다 따라서 주석 이미지에는 세 가지 색상이 포함됩니다 그런 다음 데이터 세트를 학습 데이터, 유효성 검사 데이터 및 테스트 데이터로 무작위로 나눕니다

다음으로 SAS DLPy를 사용하여 U-Net 모델을 구축하려고합니다 이 대칭 모델은 인코딩과 디코딩의 두 부분으로 볼 수 있습니다 기능 크기가 가장 작은 레이어 인 병목 현상 레이어로 분할됩니다 인코딩 부분에서 풀링 레이어를 사용하여 다운 샘플링을 수행하여 기능을 추출합니다 디코딩에서 입력 컨볼 루션 레이어를 사용하여 입력 이미지에서 업 샘플링 학습 된 정보를 재구성하는 부분

또한 텐서를 직접 결합하는 4 개의 연결 레이어를 모델에 추가했습니다 두 개의 다른 레이어에서 이전의 특정 정보를 쉽게 상속받을 수 있습니다 층 SAS DLPy는 사전 정의 된 U-Net 모델을로드하는 기능을 제공합니다 인코딩을위한 4 개의 풀링 계층 및 디코딩을위한 4 개의 전치 컨볼 루션 계층

축구 경기 데이터 모델에는 3 천 4 백만 개가 넘는 매개 변수가 포함되어 있습니다 SAS DLPy API를 사용하여 계층별로 고유 한 U-Net 모델을 만들 수도 있습니다 병목 현상 레이어의 크기 및 컨볼 루션 수와 같은 기능을 쉽게 결정할 수 있습니다 두 풀링 레이어 사이에 원하는 레이어 아키텍처가 구축되면 교육 데이터를 사용하여 모델을 교육하고 유효성을 검사 할 수 있습니다 검증 데이터 사용

교육이 완료된 후 테스트 데이터를 사용하여 모델의 성능을 테스트 할 수 있습니다 새로운 이미지를 수행합니다 스코어링 메트릭을 확인하거나 예측을 직접 시각화 할 수 있습니다 이 예에서 잘못된 분류 비율은 056 %로 65,536 픽셀 중 약 360 픽셀 만 잘못 레이블이 지정됩니다 두 번째 방법은 간단합니다

여기에 원시 이미지, 주석 및 예측을 나란히 놓고 모델의 성능을 확인하기 위해 모든 것을 쉽게 비교할 수 있습니다 첫 번째 열에는 원시 이미지가 표시되고 가운데 열에는 실제 이미지가 표시됩니다 세 번째 열의 이미지는 예측에서 얻습니다 마지막 두 열 사이에는 약간의 차이 만 있습니다 이는 U-Net 모델을 의미합니다

이 데이터에 매우 효과적이었습니다 이 비디오에서는 SAS DLPy를 사용하여 이미지 세분화 모델을 신속하게 구축하고 이 모델에 대한 교육 및 스코어링 방법 SAS DLPy에는 훨씬 더 많은 기능이 포함되어 있으므로 향후 사용 사례 시청 해주셔서 감사합니다! 안녕하세요, 제 이름은 Xindian Long이고 컴퓨터 비전을위한 딥 러닝 알고리즘을 개발합니다 YOLO, Faster R-CNN, Mask R-CNN 등 SAS Deep Learning for Python (또는 DLPy)은 고급 Python과 함께 제공됩니다 사용자가 이러한 기능을 사용할 수 있도록하는 API

현재 그림 1과 같이 주로 물체 감지 방법에는 두 가지 유형이 있습니다 첫 번째 방법은 단일 단계 방법입니다 이 유형의 방법에서 경계 상자 지역화 및 객체 분류는 하나에서 수행됩니다 단계 YOLO, SSD와 같은 알고리즘이이 범주에 속합니다

두 번째 방법은 다단계 방법입니다 여기에는 두 가지 단계가 있습니다 첫 번째 단계에서 지역 제안 네트워크는 관심있는 직사각형 지역을 찾는 것입니다 객체를 포함 할 가능성이 높은 (또는 ROI) 두 번째 단계에서는 추가 회귀 및 분류를 수행하여 실제로 해당 지역에 개체가 있으며, 그렇다면 범주와 정확한 위치 그리고 모양입니다 Faster R-CNN, R-FCN과 같은 알고리즘이이 범주에 속합니다

첫 번째 범주의 알고리즘은 일반적으로 두 번째 범주의 알고리즘보다 빠릅니다 예를 들어 실시간 성능이 필요한 응용 프로그램이있는 경우 YOLO는 아마도 좋은 선택 Faster R-CNN과 같은 두 번째 범주의 알고리즘은 일반적으로 더 정확합니다 “Faster R-CNN”이라는 이름이 언급 된 다른 알고리즘보다 더 빠르게 실행되는 것은 아닙니다 이리

R-CNN 및 Fast R-CNN 알고리즘보다 이전 버전보다 훨씬 빠릅니다 그림 2는 앵커 박스의 중요한 개념을 보여줍니다 그들은 객체에 사용됩니다 YOLO와 Faster R-CNN의 탐지 알고리즘 이 개념을 이해하는 것이 매우 중요합니다 앵커 상자는 이미지의 여러 위치에있는 추상 상자이며 일반적으로 그리드 패턴

사전 정의 된 모양으로 사전 설정된 개수의 경계 상자를 예측하는 데 사용됩니다 각 위치에서 앵커 상자는 예측 된 위치의 초기 값으로 사용됩니다 모양에 따라 개체 크기 / 모양에 대한 사전 지식이 포함되어 있습니다 그림 2의 이미지에서이 한 위치에 많은 앵커 박스가 있음을 알 수 있습니다 상자마다 모양이 다른 물체를 감지합니다

예를 들어이 이미지에서 빨간색 앵커 상자는 사람을 감지하는 상자입니다 물론 최종적으로 감지 된 물체 모양은 원래 물체와 약간 다를 수 있습니다 알고리즘이 최적화하기 때문에 앵커 박스의 모양 그림 3은 Faster R-CNN 네트워크 아키텍처를 보여줍니다 DLPy를 사용하면 계층별로 구축 할 필요가 없습니다 알고리즘 이해를 돕기 위해 그것에 대해 이야기하고 있습니다

그것의 첫 번째 부분은 백본 네트워크입니다 백본 네트워크에는 일반적으로 많은 회선 레이어와 풀링 레이어가 포함되어 있습니다 입력 이미지에서 기능 맵을 추출합니다 널리 사용되는 백본 네트워크에는 VGG16, ShuffleNet 또는 ResNet 등이 있습니다 응용 프로그램 및 요구 사항에 따라 선택할 수 있습니다

지역 제안 네트워크는 백본 네트워크를 따릅니다 지역 제안 네트워크는 많은 제안 된 관심 지역을 출력합니다 개체를 포함 할 가능성이 높은 창입니다 지역 제안 네트워크는 지역 이전에 두 개의 특수한 컨볼 루션 레이어로 구성됩니다 제안서 계층

지역 제안서 레이어에 대해 사용자가 지정해야하는 중요한 매개 변수는 앵커 박스는 제안 될 수있는 형태의 범위를 대략 결정합니다 그 후에는 ROI 풀링 레이어입니다 관심 영역을 백본 네트워크 출력 인 페더 맵에 매핑합니다 창 내부의 픽셀 값을 추출하고 다른 크기의 하위 이미지를 형성합니다 ROI 풀링 레이어는 모든 하위 이미지의 크기를 같은 크기로 조정합니다

이것은 기능 맵의 모든 채널에 대해 수행됩니다 따라서 각 ROI마다 3D 데이터 배열을 얻습니다이를 텐서라고합니다 ROI 풀링 레이어의 출력에는 제안 된 각 영역마다 하나씩 많은 텐서가 포함됩니다 관심의

네트워크의 마지막 부분은 각 텐서와 ROI에서 독립적으로 작동하며 하나를 만듭니다 각 ROI에 대한 결정 세트 먼저, 두 개의 완전 연결된 레이어가 있으며 분류간에 공유됩니다 그리고 경계 상자 회귀 그런 다음 분류 헤더와 경계 상자 회귀 헤더가 있으며 각 헤더 앞에 하나의 완전히 연결된 레이어로 각각

우리 시스템에서 분류 헤더와 바운딩 박스 회귀 헤더는 모두 FastRCNN 계층에서 구현됩니다 빠른 R-CNN 네트워크 아키텍처에 대한 간략한 소개와 알고리즘의 방법 공장 이제 노트북을 볼 수 있습니다 먼저 CAS 서버에 연결합니다 조치 세트를로드하십시오

그리고 CAS 라이브러리를 빌드하십시오 그런 다음 DLPy 함수를 호출하여 앞에서 설명한 모델 아키텍처를 빌드해야합니다 Faster_RCNN 그런 다음 데이터 세트를로드하고 훈련 세트와 데이터 세트로 분할합니다 여기서 데이터 셋과 라벨을 그래픽으로 시각화하고 이미지와 경계를 볼 수 있습니다 상자 및 레이블

네트워크 교육을 위해 사전 훈련 된 가중치를로드하고 대상 열을 정의한 다음 가중치를 계속 최적화하려면 fit 함수를 호출하십시오 그런 다음 predict 함수를 호출하여 객체 위치와 범주를 예측할 수 있습니다 마지막으로 탐지 결과를 시각화 할 수 있습니다 이미지에서 감지 된 개체 주위에 상자가 그려져 있음을 알 수 있습니다 객체 카테고리 자신감뿐만 아니라 보여줍니다

이미지에서 감지 된 양을보십시오 이것이 데모의 끝입니다 DLPy와이 예제를 사용해보십시오 시청 해주셔서 감사합니다! 안녕하세요, Guixian Lin입니다 저는 SAS의 컴퓨터 비전 딥 러닝 개발자입니다

여기에 DLPy로 알려진 SAS 고급 딥 러닝 Python API를 사용하여 가벼우면서도 강력한 컨볼 루션 뉴럴 네트워크를 쉽게 구축하고 훈련 할 수 있습니다 이미지 분류 문제에 대한 (또는 CNN) 이 예에서는 의류를 분류합니다 VGG16 및 ResNet50과 같은 인기있는 CNN은 이미지 분류에 널리 사용되었습니다 뛰어난 정확성을위한 작업 그러나 자원이 제한된 모바일 및 에지 장치의 경우 이러한 CNN은 종종 너무 유용하게 큰

얼굴 인식 및 자율 주행 차와 같은 실시간 애플리케이션에는 충분히 빠르지 않습니다 다음으로 세 가지 효율적인 CNN 인 MobilenetV1, ShufflenetV1 및 MobileNetV2를 소개합니다 이 인기 CNN보다 훨씬 작지만 정확도는 비슷합니다 CNN의 핵심 구성 요소는 컨볼 루션 레이어라는 것을 알고 있습니다 효율적인 MobileNet 및 ShuffleNet의 기본 아이디어는 표준 컨볼 루션을 대체하는 것입니다

가벼운 컨볼 루션 그림 21은 표준 컨벌루션과 깊이 분리형의 차이점을 보여줍니다 깊이 컨벌루션과 포인트 컨벌루션으로 구성된 컨벌루션 맨 윗줄에서 각 블록은 컨벌루션 필터를 나타내며 총 c2 필터가 있습니다

각 컨볼 루션 필터는 공간 정보를 필터링하고 채널 정보를 결합합니다 한 번의 단계로 입력 기능 이를 위해서는 각 컨볼 루션 필터의 깊이가 입력 피처의 깊이와 일치해야합니다 여기서 깊이는 c1입니다 레이어가 깊어 질수록 피처 맵의 깊이가 더 커지는 경우가 종종 있습니다

이러한 인기있는 CNN이 매우 큰 이유입니다 두 번째 행은 깊이 컨벌루션이 공간 정보를 채널별로 필터링 함을 보여줍니다 즉, 각 깊이 방향 컨볼 루션의 깊이는 레이어의 깊이에 관계없이 항상 1입니다 입니다 깊이 컨볼 루션은 입력 채널 만 필터링하므로 출력을 결합해야합니다

유용한 기능을 생성하는 기능 이것은 커널과의 표준 컨볼 루션 인 포인트 컨벌루션으로 수행 할 수 있습니다 1 회 1 회 표준 컨벌루션을 깊이 컨벌루션으로 교체 한 다음 점별 컨볼 루션에서 유사한 방식으로 피쳐와 패턴을 추출 할 수 있지만 모델 크기는 극적으로 감소했습니다 그림 22는 그룹 컨볼 루션을 설명합니다

채널을 여러 그룹으로 나누고 각각의 표준 컨볼 루션을 적용합니다 그룹 예를 들어 g 개의 그룹이있는 경우 모델 크기를 1 / g의 차수로 줄일 수 있습니다 그림 23은 MobileNetV1, ResNet50, ShuffleNetV1 및 MobileNetV2의 빌딩 블록을 보여줍니다

MobileNetV1의 경우 아키텍처는 VGG와 유사합니다 VGG의 표준 컨벌루션을 경량 깊이 컨볼 루션으로 대체합니다 포인트 컨벌루션이 뒤 따른다 ResNet은 종종 ResNet 블록으로 인해 VGG보다 성능이 우수하기 때문에 ShuffleNetV1 MobileNetV2는이 아이디어를 빌 렸습니다 둘 다 ResNet 블록의 표준 컨벌루션을 깊이 컨벌루션으로 대체하여 모델 크기

ShuffleNetV1은 포인트 컨벌루션을 그룹 컨볼 루션으로 대체하여 모델 크기 이제 경량 컨볼 루션이 더 작은 모델을 빌드하는 데 유용하다는 것을 이해합니다 및 ShuffleNet 다음으로 의류 소매 제품 데이터에 대한 성능을 보여 드리겠습니다 먼저 데이터 세트를로드하고 일부 이미지를 표시합니다

여기에는 6 개의 수업이 있으며 약 2,100 개의 이미지가 있습니다 다음으로, 우리는 훈련과 평가를 위해 무작위로 데이터를 훈련과 테스트로 나누었습니다 다른 CNN SAS DLPy는 다양한 사전 구축 네트워크 아키텍처를 제공합니다 매우 효과적입니다

여기서는 CNN을 구축하는 데 사용할 것입니다 MobileNetV1 아키텍처의 경우 다음과 같은 기본 매개 변수를 지정합니다 클래스 수 입력 이미지를 정규화하기위한 오프셋 및 스케일로 분류 될 수있다 또한 임의 뒤집기와 자르기를 사용하여 입력 이미지를 보강합니다 MobileNetV1 모델에는 축소 매개 변수 인 alpha가있어 출력 채널 수 옵티 마이저를 설정 한 후 모델을 학습 할 준비가되었습니다

훈련 로그는 많은 유용한 정보를 알려줍니다 여기에서 모델 매개 변수의 수가 8 백만임을 알 수 있습니다 대상에는 6 개의 클래스가 있습니다 훈련 손실과 오류로 반복 기록을 그릴 수 있습니다

16 오류 후 훈련 오류가 감소하고 수렴 함을 보여줍니다 최종 교육 오류는 약 54 %입니다 다음으로 테스트 데이터에서 모델 성능을 평가합니다 MobileNetV1 모델의 오류율은 5

3 %입니다 그거 좋네! 올바른 예측과 잘못된 예측을 통해 모델을 확인함으로써, 모델이 패턴을 배우고 합리적인 예측을한다는 것을 알 수 있습니다 다음으로 비슷한 단계를 따라 다른 CNN (ShuffleNetV1, MobileNetV2, 및 ResNet50 자세한 내용은 노트북을 참조하십시오 이 모델의 테스트 오류는 다음과 같이 요약됩니다

탁자 이 3 가지 경량 모델은 일반 모델보다 매개 변수가 훨씬 적습니다 ResNet50은이 소매 데이터의 정확성을 향상시킵니다 이 비디오에서 SAS DLPy를 사용하면 이러한 작은 크기를 빠르게 구축하고 훈련 할 수 있습니다 그러나 효율적인 CNN

앞으로의 작업에 이러한 모델을 적용 해 볼 수 있기를 바랍니다 시청 해주셔서 감사합니다! 안녕하세요 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 딥 러닝과 함께 일할 수있는 특권이 있습니다 R & D 팀 컴퓨터 용 Python 및 DLPy 및 SAS Viya를 사용한 딥 러닝을위한 비디오 시리즈입니다

전망 이 특정 비디오에서는 패션에 태그를 지정하기 위해 멀티 태스킹 딥 러닝 모델을 훈련하고 싶습니다 품목 이제 기계 학습에서 종종 이미지를 가져 와서 레이블을 지정하고 단일 이미지를 만듭니다 옷의 종류를 분류하는 것과 같이지도 학습을 통해 하나의 작업을 분류합니다 드레스인가요? 티셔츠인가요? 벨트인가요? 그리고 색상과 같은 다른 의미 속성이 있고 입력 데이터에 레이블을 지정하면 색상을 분류하기 위해 회선 신경망과 같은 다른 것을 훈련하십시오

종종 고려해야 할 장점과 장점 중 하나는 단일 모델을 훈련시키는 것입니다 이 두 가지 과제를 동시에 동시에 배우는 것입니다 이를 유용한 정보를 활용하는 패러다임 인 멀티 태스킹 학습이라고합니다 전체적인 일반화를 향상시키기 위해 여러 관련 작업에서 즉, 모델이 더 잘 맞는 경향이 있습니다 한 작업에 대한 정보가 다른 작업을 예측하는 데 신뢰성을 부여 할 수 있기 때문에 좋습니다

단일 모델이 있으므로 두 모델을 사용하는 것보다 배포가 훨씬 쉽습니다 또는 더 많은 모델 따라서보다 쉽게 ​​관리하고 생산할 수 있습니다 시작하기 전에 멀티 태스킹 학습은 매우 강력합니다 자율 주행 차와 같은 많은 응용 분야에 사용됩니다

영어로 된 문서 모음이 있다고 가정 해 봅시다 프랑스어, 독일어 및 이탈리아어로 번역하고 싶습니다 거기에는 동시에 훈련하는 세 가지 작업이 있습니다 이제이 예에서는 이미 CAS 세션을 시작했습니다 DLPy를로드했으며 CAS 서버에 연결했습니다

가장 먼저 보여 드리고 싶은 것은 디스크에서 이미지를로드하고로드하는 방법입니다 이 예제에서는 하위 디렉토리에서 읽은 후 레이블을 재귀 적으로 가져옵니다 따라서 실제로 디스크에서 데이터를로드하여 메모리로 읽어들입니다 서브 디렉토리에서 레이블을 당기십시오 다음으로하는 일은 간단한 빈도 수이며 데이터가 상당히 균형을 이루고 있음을 알 수 있습니다 모든 작업에서 332 개에서 386 개의 관측치가 있습니다

이런 종류의 균형을 가질 필요는 없으며 분명히 콜스 나 메이 시즈, 우리는 더 많은 관측을 할 것이지만 이것은 간단한 데모입니다 이제 멀티 태스킹 딥 러닝을 수행하는 데있어 가장 까다로운 부분 중 하나는 작업 레이블 자체 이제 내가하고있는 첫 번째 일은 Pandas 데이터 프레임을 사용하고 getDummies를 단순히 이진 지표를 만듭니다 딥 러닝 패키지에는 정말 강력한 것이 있습니다 SAS 함수 컴파일러입니다

이를 사용하여 자신의 손실 함수를 찾을 수 있습니다 여기에서는 계산 된 vars를 사용하여 조건부로 추가 작업을 조건부로 정의하고 있습니다 여성, 의복의 조화는 무엇이며, 나는 그것을 다른 사람들과 다시 합류합니다 데이터 여기 간단한 머리를보고 몇 가지 관찰 만 살펴보면 이제 9 개의 총 작업이 동시에 진행되고 있음을 알 수 있습니다

여자를위한 것이 든 아니든 자, 여기에 이미지를 보여 드리는 예가 있습니다 그들이 어떻게 생겼는지 딥 러닝의 많은 머신 러닝 문제와 마찬가지로 데이터 크기도 조정합니다 200×200으로 설정하고 CAS 서버의 모든 작업자 노드에서 데이터를 섞습니다 여기서 20 %의 샘플을 작성하고 있음을 명심하십시오 이것은 홀드 아웃 데이터 세트 테스트이며, 나머지 80 %의 데이터를 사용하여 학습합니다

에 모델 이제이 시점에서 직접 비순환 그래픽 인 기본 아키텍처를 정의하겠습니다 네트워크를 위해 그리고 DL Plot을 사용하여이를 수행하고 있습니다 입력 레이어, 컨볼 루션 레이어, 배치 규범 풀링 및 밀집 레이어가 있습니다

그러나이 네트워크 플롯을 보면 기본적으로 하나의 아키텍처가 있음을 알 수 있습니다 그리고 그 아키텍처는 우리가 시도하는 모든 결과 작업과 공유됩니다 예측하십시오 모든 작업에 대해 동일한 네트워크를 가질 필요는 없습니다 이것은 기본 예이며 여기에서 실제로 잘 작동합니다 예측하려는 각 작업에 대해 서로 다른 네트워크 아키텍처를 가질 수 있습니다

아키텍처를 정의한 후 모델을 학습하려고합니다 이 예에서는 운동량과 같은 매우 기본적인 최적화 방법을 사용하고 있습니다 60 개의 EPICS를하고 있는데 훈련 옵션을 정의하고 싶습니다 이제 partition이 0 인 곳을 사용하고 있습니다 그것은 훈련 데이터의 80 % 만 가져올 것입니다

모델 무게 등 나중에 득점을 할 수 있습니다 GPU에서도 이것을 훈련하고 있습니다 딥 러닝의 곱셈 특성으로 인해 네트워크를 더 빨리 훈련시킬 수 있습니다 모델과 더 빠른 실험

다양한 최적화 방법을 시도해보고 궁극적으로 최상의 모델을 얻을 수 있습니다 더 빨리 여기에 약간의 출력이 있지만, 내가 시도한 것은 이것을 이것에 요약합니다 반복 플롯 우리가 60 번의 EPICS를했다는 것을 기억하십시오 약 13 ~ 14 개의 EPICS 어딘가에서 쇠퇴와 상실과 시대를보고 있습니다

모델이 실제로 안정화 된 것 같습니다 나는 실제로 그것을 자랑스럽게 생각합니다 좋아 보인다 테스트 데이터와 비교하여 먼저 확인하겠습니다 이 모델은 훈련을 위해 개발되었습니다 이제 데이터의 20 %를 부분 집합 화하겠습니다

훈련에서 절약 한 모델 가중치를 사용하여 해당 데이터의 점수를 매길 것입니다 그리고 여기서 볼 수 있듯이 모든 작업에 대해 평균 제곱 오차가 매우 낮습니다 좀 더 세분화되고 실제로 혼동 행렬과 같은 것을보고 모델이 테스트 데이터에 얼마나 잘 맞는지 그런데이 예측값 p_는 테스트 데이터에 대한 예측값을 나타냅니다 내가 훈련 한 모델에 나는 판다에서 약간의 일을한다 파이썬을 DLPy와 똑바로 혼합하는 것이 좋습니다

그리고 9 가지 작업 각각에 대한 분류 행렬 인 혼동 행렬을 얻습니다 행은 실제 값을 나타내고 열은 예상 값을 나타냅니다 벗어난 대각선에서, 우리가 잘못한 곳입니다 여기에 검은 색은 4 개, 파란색은 4 개, 빨간색은 1 개, 우리는 다른 수업을 살펴보고 정말 잘하고 있습니다 마지막으로, SAS에서 딥 러닝의 비밀 소스 조각 중 하나는 ASTORE

여기에서 실제로 모델을 이진 파일에 저장하여 배치 스코어링을 수행 할 수 있습니다 스트리밍 분석을 사용하여 점수를 매기거나 다른 모델과의 작업을 위해 모델을 ONNX로 가져 오기 PyTorch 및 TensorFlow와 같은 패키지 여기에이 작업을 완료하고 모델을 저장했으며 다음 비디오에서는 실제로 스트리밍 분석을 사용하여이 모델의 점수를 매기는 방법을 살펴 보겠습니다 결론적으로, 멀티 태스킹 딥 러닝은 실제로 여러 개를보고 예측할 수있게합니다 동시에 작업

DLPy를 사용하면 간단합니다 다음 비디오에서 to기를 기대합니다 Python 및 SAS Viya Computer Vision Series를 사용한 딥 러닝에 오신 것을 환영합니다 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 SAS Deep과 함께 일합니다

학습 R & D 팀 이 비디오에서는 DLPy의 자매 인 ESPPy를 사용하여 멀티 태스킹을하고 싶습니다 딥 러닝 모델 이제 이미 멀티 태스킹 딥 러닝 모델을 훈련했습니다 이미지를 모아서 9 가지 작업을 예측하고 동시에 수행 할 수있는 모델을 개발했습니다

이 예제에서하고 싶은 것은 ESPPy를 사용하는 것입니다 또한 SAS 이벤트 스트림 처리 창에 연결할 수 있습니다 프로젝트를 구축하고 창과 상호 작용하며 모델을 배포합니다 SAS Event Stream Processing은 정말 멋집니다 여기에는 클러스터링에서 시계열 분석에 이르는 여러 스트리밍 작업이 포함됩니다

감정 분석 또는 공동 필터링과 같은 작업도 수행 할 수 있습니다 하지만이 데모에서는 이미지 처리 창과 온라인 창을 사용하겠습니다 딥 러닝 멀티 태스킹 모델을 배포 할 수 있습니다 이제 가장 먼저해야 할 일은 실제로 프로젝트를 만드는 것입니다 이 멀티 태스크를 호출하고 실제로이 셀을 실행하겠습니다

그리고 다음으로하고 싶은 것은 프로세스 흐름이나 관로 실제로 이미지를 읽으려면 소스 창이 필요합니다 우리가 일부 교육에서했던 것처럼 모델을 훈련 할 때마다 일반적으로 이미지 따라서 점수를 매길 때 20에서 20으로 크기를 조정하고 이미지 처리를 사용하겠습니다 그렇게하는 창

다음은 모델을 가져와야한다는 것입니다 모델을 학습하고 ASTORE로 저장 했으므로 모델 리더가 있습니다 그것을 읽을 수있는 창 그리고 실시간으로 점수를 생성하는 득점 창이 있습니다 그리고 보면, 프로젝트는 다음과 같습니다

나는 데이터를 읽고 이미지를 표준화하고 점수를 생성합니다 그런 다음 실제로 프로젝트를로드하고 몇 개의 출력 테이블을 설정하겠습니다 여기에 쓸 것입니다 이제 첫 번째 노트북을 사용하여 실제로 노트북을 정의하기 때문에 별도의 노트북이 있습니다 ESP 프로젝트

이 책에서는 간단히 게시하고 점수 매기기 프로세스를 시작하겠습니다 그래서 저는 팔고이 모든 것을 실행합니다 실제로 모델의 점수를 매 깁니다 다시 여기로 돌아가서 이제 이벤트 스트림 처리 엔진을 사용하겠습니다 득점

실제로 예측 확률과 함께 태그가 지정되고 라벨이 지정된 이미지가 표시되는 것을 볼 수 있습니다 작동하는 예제를 제공하는 작은 세트입니다 수면 시간은 03입니다 이벤트 스트림 처리 엔진은 실제로 초당 최대 50 프레임을 수행 할 수 있습니다

시원한 이 데모에서는 이미 멀티 태스킹 학습을 위해 개발 된 모델을 검색을 용이하게하기 위해 스트리밍 분석을 사용하여 배포 할 수있었습니다 콜이나 메이시 같은 사람 교육용 DLPy와 함께 ESPPy를 사용하면 실제로 쉽게 수행 할 수 있습니다

SAS Demo | Deep Learning with Python (DLPy) and SAS Viya for Computer Vision

안녕하세요, 저는 Susan Kahler이고 인공 지능과 기계 학습에 대한 책임이 있습니다 SAS에서

이 비디오에서는 SAS Deep Learning Python API 또는 DLPy에 대해 간략하게 설명합니다 이 시리즈는 DLPy가 지원하는 최신 컴퓨터 비전 모델에 중점을 둘 것입니다 DLPy를 통해 Python에 익숙한 데이터 과학자는 딥 러닝을 활용할 수 있습니다 SAS Viya의 컴퓨터 비전 기능 설명의 링크를 사용하여 주제로 직접 이동하십시오

첫 번째 섹션에서는 DLPy와 함께 Functional API를 활용하여 빌드하는 방법을 살펴 봅니다 ResNet 모델을 포함한 기능 추출을위한 복잡한 모델 다음으로 축구를 추적하기 위해 U-Net 모델을 사용하여 이미지 세분화를 수행하는 방법을 볼 수 있습니다 선수 그런 다음 DLPY가 VGG16을 백본으로 사용하여 Faster R-CNN을 사용하여 객체 감지를 지원하는 방법을 살펴 보겠습니다 회로망

스위칭 기어, DLPy가 어떻게 MobileNet 및 ShuffleNet을 지원하고 성능을 비교하는지 살펴 보겠습니다 ResNet50 모델이있는 모델 중 하나입니다 마지막으로 훈련과 추론 모두에서 멀티 태스킹 학습이 수행되는 방법을 살펴 보겠습니다 제품 권장 사항에 대해서는 소매 도메인에서 추론을 위해 Python 용 이벤트 스트림 처리 패키지 인 SAS ESPPy를 사용합니다 DLPy에는 Python 3 이상 및 SAS Viya 34가 필요합니다

또한 Analytics 전송을위한 SAS 스크립팅 래퍼 또는 SWAT 패키지가 필요합니다 DLPy는 python-dlpy 디렉토리의 SAS 소프트웨어 용 GitHub에서 사용할 수 있습니다 이 비디오에 실린 Jupyter 노트북도 해당 위치에 있습니다 DLPy의 최신 컴퓨터 비전 기능에 대해 배우고 즐기시기 바랍니다 스스로를 위해

안녕하세요, 저는 SAS의 데이터 과학자 인 Wenyu이며 딥 러닝과 컴퓨터에 중점을 둡니다 비전 API 이 비디오에서는 고급 Python API, Python을 사용한 SAS Deep Learning 또는 (DLPy) 이 비디오의 목적은 SAS에서 기능적 API를 활용하는 방법을 보여주는 것입니다 복잡한 모델을 만들기위한 DLPy 보다 유연한 방법을 제공하기 때문에 Functional API에 중점을두고 있습니다

Keras Functional API와 매우 유사한 복잡한 모델을 구현하십시오 Sequential API는 공유 모델을 만들 수 없다는 점에서 제한적입니다 레이어 또는 여러 입력 또는 출력이 있습니다 입력 및 출력이 여러 개인 모델이 Functional API를 사용하는 좋은 예입니다 간단한 6 단계로 SAS DLPy를 사용하여 모델을 생성 해 봅시다

텐서를 반환하는 Input ()에 의해 두 개의 텐서 (회색조 이미지와 RGB 이미지)를 정의합니다 목적 그런 다음 그레이 스케일 이미지가 두 개의 컨볼 루션 브랜치에 공급됩니다 이 모델에는 또 다른 입력 컬러 이미지가 있습니다 그런 다음 이미지의 특징을 추출하기 위해 컨벌루션 연산이 사용됩니다

세 개의 텐서가 연결되고 OutputLayer_1에서 분류를 계산하는 데 사용됩니다 손실 또한 모델은 OutputLayer_2를 통해 감독됩니다 그런 다음 정의 된 입력 텐서 및 출력 텐서를 Model () 함수에 전달합니다 마지막으로 compile ()을 호출하여 네트워크를 컴파일합니다

여기서는 모델의 요약과 네트워크 그래프를 보여줍니다 레이어 연결 이 다음 모델에서는 ResNet 유사 모델을 작성하는 방법을 고려하십시오 이 작업에서는 돌고래 또는 기린을 포함하는지 여부에 따라 이미지를 분류합니다 먼저 각각의 직후에 배치 정규화를 채택하는 회선 블록을 정의합니다

회선 다음으로, 나머지 블록 내에서 바로 가기 연결을 사용하여 입력 기능을 연결합니다 컨볼 루션의 출력에 4 개의 누적 잔차 블록이 있으며 네트워크는 전체 평균 풀링으로 끝납니다 다음은 4 개의 잔차 블록이 순차적으로 누적되고 전체 평균이 표시되는 모델의 그래프입니다 풀링

모델이 빌드되면 ImageTable API에 의해 데이터가로드되고 모델을 학습 할 수 있습니다 순차적 인 모델처럼 SAS DLPy API를 사용하면 사전 훈련 된 여러 출력 모델을보다 쉽게 ​​정의 할 수 있습니다 기능 추출기로서의 백본 다음 경우에는 가중치와 함께 ResNet18 모델을로드합니다 다음으로로드 된 모델을 기능 모델로 변환하고 원래 작업 계층을 삭제합니다 이를 위해 to_functional_model ()을 사용하고 stop_layers를 지정합니다

그래프 이동을 중지하는 레이어 즉, stop_layers와 stop_layers가 뒤에 오는 모든 레이어가 제거됩니다 기능적 모델 그런 다음 OutputLayer와 Keypoints Layer라는 두 가지 새로운 작업 계층을 추가합니다 그래프 하단에서 새로 추가 된 두 개의 레이어를 볼 수 있습니다

이 비디오에서는 DLPy를 사용하여 여러 입력 및 출력을 가진 모델을 만든 다음 ResNet과 유사한 모델이며 마지막으로 순차 모델을 기능 모델로 변환했습니다 시청 해 주셔서 감사합니다 안녕하세요, 저는 Maggie Du이고 SAS의 기계 학습 개발자이며 딥 러닝 및 컴퓨터 비전 API 이 비디오에서는 DLPy라고하는 SAS 고급 딥 러닝 Python API를 사용하여 게임에서 축구 선수를 추적하는 이미지 분할 문제를 해결하는 방법을 보여줍니다 각 플레이어에 대한 통계를 제공합니다

코치에 의한 경기 후 분석과 같은 여러 목적으로 통계를 사용할 수 있습니다 팬들에게 증강 게임 시청 경험을 제공합니다 이미지 분할은 이미지를 의미 적으로 의미있는 부분으로 분할하려고 시도합니다 각 부분을 사전 정의 된 레이블 중 하나로 분류합니다 따라서 픽셀 수준에서 이미지를 이해하는 새로운 방법입니다

예를 들어이 이미지에는 개, 고양이 및 배경의 세 가지 클래스가 있습니다 따라서 우리는 각 픽셀에 어떤 클래스가 속하는지를 나타내는 특정 색상을 부여합니다 전반적으로 각 객체의 정확한 경계를 얻을 수 있습니다 시작하자 필요한 모듈을로드 한 후 데이터 세트를로드하려고합니다

우리는 축구 경기의 이미지를 예로 들어 170 이미지가 포함 된 모두 256 * 256으로 조정되었습니다 다음은 원시 이미지와 해당 주석의 시각화입니다 이미지에는 축구 선수, 축구 공 및 배경의 세 가지 다른 객체가 있습니다 따라서 주석 이미지에는 세 가지 색상이 포함됩니다 그런 다음 데이터 세트를 학습 데이터, 유효성 검사 데이터 및 테스트 데이터로 무작위로 나눕니다

다음으로 SAS DLPy를 사용하여 U-Net 모델을 구축하려고합니다 이 대칭 모델은 인코딩과 디코딩의 두 부분으로 볼 수 있습니다 기능 크기가 가장 작은 레이어 인 병목 현상 레이어로 분할됩니다 인코딩 부분에서 풀링 레이어를 사용하여 다운 샘플링을 수행하여 기능을 추출합니다 디코딩에서 입력 컨볼 루션 레이어를 사용하여 입력 이미지에서 업 샘플링 학습 된 정보를 재구성하는 부분

또한 텐서를 직접 결합하는 4 개의 연결 레이어를 모델에 추가했습니다 두 개의 다른 레이어에서 이전의 특정 정보를 쉽게 상속받을 수 있습니다 층 SAS DLPy는 사전 정의 된 U-Net 모델을로드하는 기능을 제공합니다 인코딩을위한 4 개의 풀링 계층 및 디코딩을위한 4 개의 전치 컨볼 루션 계층

축구 경기 데이터 모델에는 3 천 4 백만 개가 넘는 매개 변수가 포함되어 있습니다 SAS DLPy API를 사용하여 계층별로 고유 한 U-Net 모델을 만들 수도 있습니다 병목 현상 레이어의 크기 및 컨볼 루션 수와 같은 기능을 쉽게 결정할 수 있습니다 두 풀링 레이어 사이에 원하는 레이어 아키텍처가 구축되면 교육 데이터를 사용하여 모델을 교육하고 유효성을 검사 할 수 있습니다 검증 데이터 사용

교육이 완료된 후 테스트 데이터를 사용하여 모델의 성능을 테스트 할 수 있습니다 새로운 이미지를 수행합니다 스코어링 메트릭을 확인하거나 예측을 직접 시각화 할 수 있습니다 이 예에서 잘못된 분류 비율은 056 %로 65,536 픽셀 중 약 360 픽셀 만 잘못 레이블이 지정됩니다 두 번째 방법은 간단합니다

여기에 원시 이미지, 주석 및 예측을 나란히 놓고 모델의 성능을 확인하기 위해 모든 것을 쉽게 비교할 수 있습니다 첫 번째 열에는 원시 이미지가 표시되고 가운데 열에는 실제 이미지가 표시됩니다 세 번째 열의 이미지는 예측에서 얻습니다 마지막 두 열 사이에는 약간의 차이 만 있습니다 이는 U-Net 모델을 의미합니다

이 데이터에 매우 효과적이었습니다 이 비디오에서는 SAS DLPy를 사용하여 이미지 세분화 모델을 신속하게 구축하고 이 모델에 대한 교육 및 스코어링 방법 SAS DLPy에는 훨씬 더 많은 기능이 포함되어 있으므로 향후 사용 사례 시청 해 주셔서 감사합니다! 안녕하세요, 제 이름은 Xindian Long이고 컴퓨터 비전을위한 딥 러닝 알고리즘을 개발합니다 YOLO, Faster R-CNN, Mask R-CNN 등 SAS Deep Learning for Python (또는 DLPy)은 고급 Python과 함께 제공됩니다 사용자가 이러한 기능을 사용할 수 있도록하는 API

현재 그림 1과 같이 주로 물체 감지 방법에는 두 가지 유형이 있습니다 첫 번째 방법은 단일 단계 방법입니다 이 유형의 방법에서 경계 상자 지역화 및 객체 분류는 하나에서 수행됩니다 단계 YOLO, SSD와 같은 알고리즘이이 범주에 속합니다

두 번째 방법은 다단계 방법입니다 여기에는 두 가지 단계가 있습니다 첫 번째 단계에서 지역 제안 네트워크는 관심있는 직사각형 지역을 찾는 것입니다 객체를 포함 할 가능성이 높은 (또는 ROI) 두 번째 단계에서는 추가 회귀 및 분류를 수행하여 실제로 해당 지역에 개체가 있으며, 그렇다면 범주와 정확한 위치 그리고 모양입니다 Faster R-CNN, R-FCN과 같은 알고리즘이이 범주에 속합니다

첫 번째 범주의 알고리즘은 일반적으로 두 번째 범주의 알고리즘보다 빠릅니다 예를 들어 실시간 성능이 필요한 응용 프로그램이있는 경우 YOLO는 아마도 좋은 선택 Faster R-CNN과 같은 두 번째 범주의 알고리즘은 일반적으로 더 정확합니다 “Faster R-CNN”이라는 이름이 언급 된 다른 알고리즘보다 더 빠르게 실행되는 것은 아닙니다 이리

R-CNN 및 Fast R-CNN 알고리즘보다 이전 버전보다 훨씬 빠릅니다 그림 2는 앵커 박스의 중요한 개념을 보여줍니다 그들은 객체에 사용됩니다 YOLO와 Faster R-CNN의 탐지 알고리즘 이 개념을 이해하는 것이 매우 중요합니다 앵커 상자는 이미지의 여러 위치에있는 추상 상자이며 일반적으로 그리드 패턴

사전 정의 된 모양으로 사전 설정된 개수의 경계 상자를 예측하는 데 사용됩니다 각 위치에서 앵커 상자는 예측 된 위치의 초기 값으로 사용됩니다 모양에 따라 개체 크기 / 모양에 대한 사전 지식이 포함되어 있습니다 그림 2의 이미지에서이 한 위치에 많은 앵커 박스가 있음을 알 수 있습니다 상자마다 모양이 다른 물체를 감지합니다

예를 들어이 이미지에서 빨간색 앵커 상자는 사람을 감지하는 상자입니다 물론 최종적으로 감지 된 물체 모양은 원래 물체와 약간 다를 수 있습니다 알고리즘이 최적화하기 때문에 앵커 박스의 모양 그림 3은 Faster R-CNN 네트워크 아키텍처를 보여줍니다 DLPy를 사용하면 계층별로 구축 할 필요가 없습니다 알고리즘 이해를 돕기 위해 그것에 대해 이야기하고 있습니다

그것의 첫 번째 부분은 백본 네트워크입니다 백본 네트워크에는 일반적으로 많은 회선 레이어와 풀링 레이어가 포함되어 있습니다 입력 이미지에서 기능 맵을 추출합니다 널리 사용되는 백본 네트워크에는 VGG16, ShuffleNet 또는 ResNet 등이 있습니다 응용 프로그램 및 요구 사항에 따라 선택할 수 있습니다

지역 제안 네트워크는 백본 네트워크를 따릅니다 지역 제안 네트워크는 많은 제안 된 관심 지역을 출력합니다 개체를 포함 할 가능성이 높은 창입니다 지역 제안 네트워크는 지역 이전에 두 개의 특수한 컨볼 루션 레이어로 구성됩니다 제안서 계층

지역 제안서 레이어에 대해 사용자가 지정해야하는 중요한 매개 변수는 앵커 박스는 제안 될 수있는 형태의 범위를 대략 결정합니다 그 후에는 ROI 풀링 레이어입니다 관심 영역을 백본 네트워크 출력 인 페더 맵에 매핑합니다 창 내부의 픽셀 값을 추출하고 다른 크기의 하위 이미지를 형성합니다 ROI 풀링 레이어는 모든 하위 이미지의 크기를 같은 크기로 조정합니다

이것은 기능 맵의 모든 채널에 대해 수행됩니다 따라서 각 ROI마다 3D 데이터 배열을 얻습니다이를 텐서라고합니다 ROI 풀링 레이어의 출력에는 제안 된 각 영역마다 하나씩 많은 텐서가 포함됩니다 관심의

네트워크의 마지막 부분은 각 텐서와 ROI에서 독립적으로 작동하며 하나를 만듭니다 각 ROI에 대한 결정 세트 먼저, 두 개의 완전 연결된 레이어가 있으며 분류간에 공유됩니다 그리고 경계 상자 회귀 그런 다음 분류 헤더와 경계 상자 회귀 헤더가 있으며 각 헤더 앞에 하나의 완전히 연결된 레이어로 각각

우리 시스템에서 분류 헤더와 바운딩 박스 회귀 헤더는 모두 FastRCNN 계층에서 구현됩니다 빠른 R-CNN 네트워크 아키텍처에 대한 간략한 소개와 알고리즘의 방법 공장 이제 노트북을 볼 수 있습니다 먼저 CAS 서버에 연결합니다 조치 세트를로드하십시오

그리고 CAS 라이브러리를 빌드하십시오 그런 다음 DLPy 함수를 호출하여 앞에서 설명한 모델 아키텍처를 빌드해야합니다 Faster_RCNN 그런 다음 데이터 세트를로드하고 훈련 세트와 데이터 세트로 분할합니다 여기서 데이터 셋과 라벨을 그래픽으로 시각화하고 이미지와 경계를 볼 수 있습니다 상자 및 레이블

네트워크 교육을 위해 사전 훈련 된 가중치를로드하고 대상 열을 정의한 다음 가중치를 계속 최적화하려면 fit 함수를 호출하십시오 그런 다음 predict 함수를 호출하여 객체 위치와 범주를 예측할 수 있습니다 마지막으로 탐지 결과를 시각화 할 수 있습니다 이미지에서 감지 된 개체 주위에 상자가 그려져 있음을 알 수 있습니다 객체 카테고리 자신감뿐만 아니라 보여줍니다

이미지에서 감지 된 양을보십시오 이것이 데모의 끝입니다 DLPy와이 예제를 사용해보십시오 시청 해 주셔서 감사합니다! 안녕하세요, Guixian Lin입니다 저는 SAS의 컴퓨터 비전 딥 러닝 개발자입니다

여기에 DLPy로 알려진 SAS 고급 딥 러닝 Python API를 사용하여 가벼우면서도 강력한 컨볼 루션 뉴럴 네트워크를 쉽게 구축하고 훈련 할 수 있습니다 이미지 분류 문제에 대한 (또는 CNN) 이 예에서는 의류를 분류합니다 VGG16 및 ResNet50과 같은 인기있는 CNN은 이미지 분류에 널리 사용되었습니다 뛰어난 정확성을위한 작업 그러나 자원이 제한된 모바일 및 에지 장치의 경우 이러한 CNN은 종종 너무 유용하게 큰

얼굴 인식 및 자율 주행 차와 같은 실시간 애플리케이션에는 충분히 빠르지 않습니다 다음으로 세 가지 효율적인 CNN 인 MobilenetV1, ShufflenetV1 및 MobileNetV2를 소개합니다 이 인기 CNN보다 훨씬 작지만 정확도는 비슷합니다 CNN의 핵심 구성 요소는 컨볼 루션 레이어라는 것을 알고 있습니다 효율적인 MobileNet 및 ShuffleNet의 기본 아이디어는 표준 컨볼 루션을 대체하는 것입니다

가벼운 컨볼 루션 그림 21은 표준 컨벌루션과 깊이 분리형의 차이점을 보여줍니다 깊이 컨벌루션과 포인트 컨벌루션으로 구성된 컨벌루션 맨 윗줄에서 각 블록은 컨벌루션 필터를 나타내며 총 c2 필터가 있습니다

각 컨볼 루션 필터는 공간 정보를 필터링하고 채널 정보를 결합합니다 한 번의 단계로 입력 기능 이를 위해서는 각 컨볼 루션 필터의 깊이가 입력 피처의 깊이와 일치해야합니다 여기서 깊이는 c1입니다 레이어가 깊어 질수록 피쳐 맵의 깊이가 더 커지는 경우가 종종 있습니다

이러한 인기있는 CNN이 매우 큰 이유입니다 두 번째 행은 깊이 컨벌루션이 공간 정보를 채널별로 필터링 함을 보여줍니다 즉, 각 깊이 방향 컨볼 루션의 깊이는 레이어의 깊이에 관계없이 항상 1입니다 입니다 깊이 컨볼 루션은 입력 채널 만 필터링하므로 출력을 결합해야합니다

유용한 기능을 생성하는 기능 이것은 커널과의 표준 컨볼 루션 인 포인트 컨벌루션으로 수행 할 수 있습니다 1 회 1 회 표준 컨벌루션을 깊이 컨벌루션으로 교체 한 다음 점별 컨볼 루션에서 유사한 방식으로 피쳐와 패턴을 추출 할 수 있지만 모델 크기는 극적으로 감소했습니다 그림 22는 그룹 컨볼 루션을 설명합니다

채널을 여러 그룹으로 나누고 각각의 표준 컨볼 루션을 적용합니다 그룹 예를 들어 g 개의 그룹이있는 경우 모델 크기를 1 / g의 차수로 줄일 수 있습니다 그림 23은 MobileNetV1, ResNet50, ShuffleNetV1 및 MobileNetV2의 빌딩 블록을 보여줍니다

MobileNetV1의 경우 아키텍처는 VGG와 유사합니다 VGG의 표준 컨벌루션을 경량 깊이 컨볼 루션으로 대체합니다 포인트 컨벌루션이 뒤 따른다 ResNet은 종종 ResNet 블록으로 인해 VGG보다 성능이 우수하기 때문에 ShuffleNetV1 MobileNetV2는이 아이디어를 빌 렸습니다 둘 다 ResNet 블록의 표준 컨벌루션을 깊이 컨벌루션으로 대체하여 모델 크기

ShuffleNetV1은 포인트 컨벌루션을 그룹 컨볼 루션으로 대체하여 모델 크기 이제 경량 컨볼 루션이 더 작은 모델을 빌드하는 데 유용하다는 것을 이해합니다 및 ShuffleNet 다음으로 의류 소매 제품 데이터에 대한 성능을 보여 드리겠습니다 먼저 데이터 세트를로드하고 일부 이미지를 표시합니다

여기에는 6 개의 수업이 있으며 약 2,100 개의 이미지가 있습니다 다음으로, 우리는 훈련과 평가를 위해 무작위로 데이터를 훈련과 테스트로 나누었습니다 다른 CNN SAS DLPy는 다양한 사전 구축 네트워크 아키텍처를 제공합니다 매우 효과적입니다

여기서는 CNN을 구축하는 데 사용할 것입니다 MobileNetV1 아키텍처의 경우 다음과 같은 기본 매개 변수를 지정합니다 클래스 수 입력 이미지를 정규화하기위한 오프셋 및 스케일로 분류 될 수있다 또한 임의 뒤집기와 자르기를 사용하여 입력 이미지를 보강합니다 MobileNetV1 모델에는 축소 매개 변수 인 alpha가있어 출력 채널 수 옵티 마이저를 설정 한 후 모델을 학습 할 준비가되었습니다

훈련 로그는 많은 유용한 정보를 알려줍니다 여기에서 모델 매개 변수의 수가 8 백만임을 알 수 있습니다 대상에는 6 개의 클래스가 있습니다 훈련 손실과 오류로 반복 기록을 그릴 수 있습니다

16 오류 후 훈련 오류가 감소하고 수렴 함을 보여줍니다 최종 교육 오류는 약 54 %입니다 다음으로 테스트 데이터에서 모델 성능을 평가합니다 MobileNetV1 모델의 오류율은 5

3 %입니다 좋아요! 올바른 예측과 잘못된 예측을 통해 모델을 확인함으로써, 모델이 패턴을 배우고 합리적인 예측을한다는 것을 알 수 있습니다 다음으로 비슷한 단계를 따라 다른 CNN (ShuffleNetV1, MobileNetV2, 및 ResNet50 자세한 내용은 노트북을 참조하십시오 이 모델의 테스트 오류는 다음과 같이 요약됩니다

탁자 이 3 가지 경량 모델은 일반 모델보다 매개 변수가 훨씬 적습니다 ResNet50은이 소매 데이터의 정확성을 향상시킵니다 이 비디오에서 SAS DLPy를 사용하면 이러한 작은 크기를 빠르게 구축하고 훈련 할 수 있습니다 그러나 효율적인 CNN

앞으로의 작업에 이러한 모델을 적용 해 볼 수 있기를 바랍니다 시청 해 주셔서 감사합니다! 안녕하세요 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 딥 러닝과 함께 일할 수있는 특권이 있습니다 R & D 팀 컴퓨터 용 Python 및 DLPy 및 SAS Viya를 사용한 딥 러닝을위한 비디오 시리즈입니다

시력 이 특정 비디오에서는 패션에 태그를 지정하기 위해 멀티 태스킹 딥 러닝 모델을 훈련하고 싶습니다 품목 이제 기계 학습에서 종종 이미지를 가져 와서 레이블을 지정하고 단일 이미지를 만듭니다 옷의 종류를 분류하는 것과 같이지도 학습을 통해 하나의 작업을 분류합니다 드레스인가요? 티셔츠인가요? 벨트인가요? 그리고 색상과 같은 다른 의미 속성이 있고 입력 데이터에 레이블을 지정하면 색상을 분류하기 위해 회선 신경망과 같은 다른 것을 훈련하십시오

종종 고려해야 할 장점과 장점 중 하나는 단일 모델을 훈련시키는 것입니다 이 두 가지 과제를 동시에 동시에 배우는 것입니다 이를 유용한 정보를 활용하는 패러다임 인 멀티 태스킹 학습이라고합니다 전체적인 일반화를 향상시키기 위해 여러 관련 작업에서 즉, 모델이 더 잘 맞는 경향이 있습니다 한 작업에 대한 정보가 다른 작업을 예측하는 데 신뢰성을 부여 할 수 있기 때문에 좋습니다

단일 모델이 있으므로 두 모델을 사용하는 것보다 배포가 훨씬 쉽습니다 또는 더 많은 모델 따라서보다 쉽게 ​​관리하고 생산할 수 있습니다 시작하기 전에 멀티 태스킹 학습은 매우 강력합니다 자율 주행 차와 같은 많은 응용 분야에 사용됩니다

영어로 된 문서 모음이 있다고 가정 해 봅시다 프랑스어, 독일어 및 이탈리아어로 번역하고 싶습니다 거기에는 동시에 훈련하는 세 가지 작업이 있습니다 이제이 예에서는 이미 CAS 세션을 시작했습니다 DLPy를로드했으며 CAS 서버에 연결했습니다

가장 먼저 보여 드리고 싶은 것은 디스크에서 이미지를로드하고로드하는 방법입니다 이 예제에서는 하위 디렉토리에서 읽은 후 레이블을 재귀 적으로 가져옵니다 따라서 실제로 디스크에서 데이터를로드하여 메모리로 읽어들입니다 서브 디렉토리에서 레이블을 당기십시오 다음으로하는 일은 간단한 빈도 수이며 데이터가 상당히 균형을 이루고 있음을 알 수 있습니다 모든 작업에서 332 개에서 386 개의 관측치가 있습니다

이런 종류의 균형을 가질 필요는 없으며 분명히 콜스 나 메이 시즈, 우리는 더 많은 관측을 할 것이지만 이것은 간단한 데모입니다 이제 멀티 태스킹 딥 러닝을 수행하는 데있어 가장 까다로운 부분 중 하나는 작업 레이블 자체 이제 내가하고있는 첫 번째 일은 Pandas 데이터 프레임을 사용하고 getDummies를 단순히 이진 지표를 만듭니다 딥 러닝 패키지에는 정말 강력한 것이 있습니다 SAS 함수 컴파일러입니다

이를 사용하여 자신의 손실 함수를 찾을 수 있습니다 여기에서는 계산 된 vars를 사용하여 조건부로 추가 작업을 조건부로 정의하고 있습니다 여성, 의복의 조화는 무엇이며, 나는 그것을 다른 사람들과 다시 합류합니다 데이터 여기 간단한 머리를보고 몇 가지 관찰 만 살펴보면 이제 9 개의 총 작업이 동시에 진행되고 있음을 알 수 있습니다

여자를위한 것이 든 아니든 자, 여기에 이미지를 보여 드리는 예가 있습니다 그들이 어떻게 생겼는지 딥 러닝의 많은 머신 러닝 문제와 마찬가지로 데이터 크기도 조정합니다 200×200으로 설정하고 CAS 서버의 모든 작업자 노드에서 데이터를 섞습니다 여기서 20 %의 샘플을 작성하고 있음을 명심하십시오 이것은 홀드 아웃 데이터 세트 테스트이며, 나머지 80 %의 데이터를 사용하여 학습합니다

에 모델 이제이 시점에서 직접 비순환 그래픽 인 기본 아키텍처를 정의하겠습니다 네트워크를 위해 그리고 DL Plot을 사용하여이를 수행하고 있습니다 입력 레이어, 컨볼 루션 레이어, 배치 규범 풀링 및 밀집 레이어가 있습니다

그러나이 네트워크 플롯을 보면 기본적으로 하나의 아키텍처가 있음을 알 수 있습니다 그리고 그 아키텍처는 우리가 시도하는 모든 결과 작업과 공유됩니다 예측하십시오 모든 작업에 대해 동일한 네트워크를 가질 필요는 없습니다 이것은 기본 예이며 여기에서 실제로 잘 작동합니다 예측하려는 각 작업에 대해 서로 다른 네트워크 아키텍처를 가질 수 있습니다

아키텍처를 정의한 후 모델을 학습하려고합니다 이 예에서는 운동량과 같은 매우 기본적인 최적화 방법을 사용하고 있습니다 60 개의 EPICS를하고 있는데 훈련 옵션을 정의하고 싶습니다 이제 partition이 0 인 곳을 사용하고 있습니다 그것은 훈련 데이터의 80 % 만 가져올 것입니다

모델 무게 등 나중에 득점을 할 수 있습니다 GPU에서도 이것을 훈련하고 있습니다 딥 러닝의 곱셈 특성으로 인해 네트워크를 더 빨리 훈련시킬 수 있습니다 모델과 더 빠른 실험

다양한 최적화 방법을 시도해보고 궁극적으로 최상의 모델을 얻을 수 있습니다 더 빠르게 여기에 약간의 출력이 있지만, 내가 시도한 것은 이것을 이것에 요약합니다 반복 플롯 우리가 60 번의 EPICS를했다는 것을 기억하십시오 약 13 ~ 14 개의 EPICS 어딘가에서 쇠퇴와 상실과 시대를보고 있습니다

모델이 실제로 안정화 된 것 같습니다 나는 실제로 그것을 자랑스럽게 생각합니다 좋아 보인다 테스트 데이터와 비교하여 먼저 확인하겠습니다 이 모델은 훈련을 위해 개발되었습니다 이제 데이터의 20 %를 부분 집합 화하겠습니다

훈련에서 절약 한 모델 가중치를 사용하여 해당 데이터의 점수를 매길 것입니다 그리고 여기서 볼 수 있듯이 모든 작업에 대해 평균 제곱 오차가 매우 낮습니다 좀 더 세분화되고 실제로 혼동 행렬과 같은 것을보고 모델이 테스트 데이터에 얼마나 잘 맞는지 그런데이 예측값 p_는 테스트 데이터에 대한 예측값을 나타냅니다 내가 훈련 한 모델에 나는 판다에서 약간의 일을한다 파이썬을 DLPy와 똑바로 혼합하는 것이 좋습니다

그리고 9 가지 작업 각각에 대한 분류 행렬 인 혼동 행렬을 얻습니다 행은 실제 값을 나타내고 열은 예상 값을 나타냅니다 벗어난 대각선에서, 우리가 잘못한 곳입니다 여기에 검은 색은 4 개, 파란색은 4 개, 빨간색은 1 개, 우리는 다른 수업을 살펴보고 정말 잘하고 있습니다 마지막으로, SAS에서 딥 러닝의 비밀 소스 조각 중 하나는 ASTORE

여기에서 실제로 모델을 이진 파일에 저장하여 배치 스코어링을 수행 할 수 있습니다 스트리밍 분석을 사용하여 점수를 매기거나 다른 모델과의 작업을 위해 모델을 ONNX로 가져 오기 PyTorch 및 TensorFlow와 같은 패키지 여기에이 작업을 완료하고 모델을 저장했으며 다음 비디오에서는 실제로 스트리밍 분석을 사용하여이 모델의 점수를 매기는 방법을 살펴 보겠습니다 결론적으로, 멀티 태스킹 딥 러닝은 실제로 여러 개를보고 예측할 수있게합니다 동시에 작업

DLPy를 사용하면 간단합니다 다음 비디오에서 to기를 기대합니다 Python 및 SAS Viya Computer Vision Series를 사용한 딥 러닝에 오신 것을 환영합니다 제 이름은 웨인 톰슨입니다 저는 SAS의 데이터 과학자이며 SAS Deep과 함께 일합니다

학습 R & D 팀 이 비디오에서는 DLPy의 자매 인 ESPPy를 사용하여 멀티 태스킹을하고 싶습니다 딥 러닝 모델 이제 이미 멀티 태스킹 딥 러닝 모델을 훈련했습니다 이미지를 모아서 9 가지 작업을 예측하고 동시에 수행 할 수있는 모델을 개발했습니다

이 예제에서하고 싶은 것은 ESPPy를 사용하는 것입니다 또한 SAS 이벤트 스트림 처리 창에 연결할 수 있습니다 프로젝트를 구축하고 창과 상호 작용하며 모델을 배포합니다 SAS Event Stream Processing은 정말 멋집니다 여기에는 클러스터링에서 시계열 분석에 이르는 여러 스트리밍 작업이 포함됩니다

감정 분석 또는 공동 필터링과 같은 작업도 수행 할 수 있습니다 하지만이 데모에서는 이미지 처리 창과 온라인 창을 사용하겠습니다 딥 러닝 멀티 태스킹 모델을 배포 할 수 있습니다 이제 가장 먼저해야 할 일은 실제로 프로젝트를 만드는 것입니다 이 멀티 태스크를 호출하고 실제로이 셀을 실행하겠습니다

그리고 다음으로하고 싶은 것은 프로세스 흐름이나 관로 실제로 이미지를 읽으려면 소스 창이 필요합니다 우리가 일부 교육에서했던 것처럼 모델을 훈련 할 때마다 일반적으로 이미지 따라서 점수를 매길 때 20에서 20으로 크기를 조정하고 이미지 처리를 사용하겠습니다 그렇게하는 창

다음은 모델을 가져와야한다는 것입니다 모델을 학습하고 ASTORE로 저장 했으므로 모델 리더가 있습니다 그것을 읽을 수있는 창 그리고 실시간으로 점수를 생성하는 득점 창이 있습니다 그리고 보면, 프로젝트는 다음과 같습니다

나는 데이터를 읽고 이미지를 표준화하고 점수를 생성합니다 그런 다음 실제로 프로젝트를로드하고 몇 개의 출력 테이블을 설정하겠습니다 여기에 쓸 것입니다 이제 첫 번째 노트북을 사용하여 실제로 노트북을 정의하기 때문에 별도의 노트북이 있습니다 ESP 프로젝트

이 책에서는 간단히 게시하고 점수 매기기 프로세스를 시작하겠습니다 그래서 저는 팔고이 모든 것을 실행합니다 실제로 모델의 점수를 매 깁니다 다시 여기로 돌아가서 이제 이벤트 스트림 처리 엔진을 사용하겠습니다 득점

실제로 예측 확률과 함께 태그가 지정되고 라벨이 지정된 이미지가 표시되는 것을 볼 수 있습니다 작동하는 예제를 제공하는 작은 세트입니다 수면 시간은 03입니다 이벤트 스트림 처리 엔진은 실제로 초당 최대 50 프레임을 수행 할 수 있습니다

시원한 이 데모에서는 이미 멀티 태스킹 학습을 위해 개발 된 모델을 검색을 용이하게하기 위해 스트리밍 분석을 사용하여 배포 할 수있었습니다 콜이나 메이시 같은 사람 교육용 DLPy와 함께 ESPPy를 사용하면 실제로 쉽게 수행 할 수 있습니다

SAS Tutorial | Machine Learning Fundamentals

안녕하세요 나는 Ari Zitin이고, 나는 당신과 이야기 할 것입니다 오늘날 일부 기계 학습 기본 사항에 대해 우리는 약간의 세부 사항으로 갈 것입니다 일부 의사 결정 트리 모델과 일부 신경망 모델에서 그 일환으로 HMEQ Home Equity를 사용할 것입니다 이 모델에서 시도하고 자세히 설명하는 데이터 세트

우리가 데이터에 들어가기 전에 조금 이야기하겠습니다 머신 러닝에 대해 기계 학습의 아이디어는 컴퓨터를 자동화하고 싶다는 것입니다 무언가를 분류하는 작업 항상 할 수있는 쉬운 예 거의 모든 사람이 경험이 있다고 생각 ATM에 자동으로 수표를 입금하면 수표에 얼마의 돈이 있는지 알아냅니다 입력하지 않아도 믿을 수 없기 때문에 반드시 입력해야합니다 그것이하는 것은 수표 금액을 찍는 것입니다 기본적으로 과거 데이터로부터 학습 그 숫자가 실제로 무엇인지에 대해 주석을 달았습니다

이것이 이미지를 사용한 머신 러닝의 예입니다 우리가 할 일은 과거 데이터를 사용한 기계 학습입니다 은행 데이터, HMEQ 데이터 세트, 데이터 세트에 대한 링크가 있습니다 액세스하려면 아래를 클릭하십시오 공개적으로 사용 가능하며 따라갈 수 있습니다 동일한 데이터로 자신 만의 모델을 만들 수 있습니다

이 HMEQ 데이터 세트는 과거 데이터입니다 은행에서 고객에 대해 수집 한 우리가 예측하고 싶은 것은 그들은 대출을 기본으로합니다 이것이 우리의 목표가 될 것입니다 그들이 우리의 대출에 대한 채무 불이행 여부, 우리는 역사 정보를 사용합니다 시도하고 결정합니다 이전에 자동 확인으로 제공 한 예 스캔 할 때 대상은 검사의 숫자입니다 우리가 제공하는 정보는 실제로 사진입니다

머신 러닝에는 두 가지 다른 예가 있습니다 우리는 역사적인 은행 데이터를 사용하여 작업을 수행 할 것입니다 과거 은행 데이터에 대한 입력 대출 금액과 같은 것들입니다 요청한 담보 대출 금액 은행과의 소득 대비 부채 비율 연체 크레딧 한도 경멸 적 신용 보고서의 수 신용 한도, 직업 정보 대상은 이진 기본값 인 BAD입니다

하지만 나쁘기 때문에 BAD라고 생각합니다 당신이 대출에 불이행하는 경우 따라서 우리의 목표는 불이행 고객들에게는 1이 될 것입니다 대출에 대해서는 0이고 그렇지 않은 고객에게는 0입니다 우리는 사람들이 시도하고 예측하려고합니다 우리는 그들에게주는 것을 피할 수 있도록 대출에 대한 채무 불이행을 우리는 그들이 채무 불이행 될 것이라는 것을 알고 있습니다 이제 기계 학습의 예를 살펴 보겠습니다 알고리즘

우리는 의사 결정 트리로 시작합니다 알고리즘의 작동 방식을 파악한 다음 소프트웨어에서 알고리즘을 빌드하십시오 우리는 또한 신경망에 대해서도 같은 일을 할 것입니다 사진을 보면서 시작하겠습니다 어떤 종류의 데이터가 있는지 볼 수 있습니다 이 예에서는 데이터를 제한했습니다 2 차원으로

우리는 2 차원 데이터에서 파란색 점과 빨간색 점 우리는 논쟁을 위해 우리의 파란 점은-목표는 0입니다 그래서 그들은 그들의 대출을 불이행하지 않았습니다 우리의 빨간 점은 우리의 목표입니다 1은 대출에 대한 채무 불이행을 의미합니다 이 두 축은 입력 치수의 두 개일뿐입니다

그래서 나는 그들 중 몇 가지를 언급했습니다 이를 위해 x 축에서 우리는 연체 신용 한도를 가지고 있습니다 연체 크레딧 한도 고객이 보유한 y 축 우리는 그들이있는 집의 가치를 가지고 있습니다 신용을 빼려고 노력했습니다 그래서 우리는 고객에 대한 정보를 봅니다 보시다시피 클러스터링이 있습니다

파란색 포인트로 인해 대부분의 고객이 그들의 대출과 그룹을 기본으로하지 않았다 빨간색 포인트로 인해 대부분의 고객이 그들의 대출에 불이행했다 우리가하고 싶은 것은 노력하고 이 줄거리에 선을 그리는 방법으로 파란색 점을 빨간색 점과 분리합니다 의사 결정 트리의 경우 직선을 그리는 것 서로 수직입니다 예를 들어 직선 하나를 그리겠습니다 데이터에서 찾을 수있는 분리 점을 나타냅니다 빨간색 점 또는 사람에서 파란색 점을 분리 불이행 한 사람들로부터 불이행하지 않은 사람 이 데이터를 보면 바로 여기 선을 그릴 수 있다고 생각합니다

그리고 우리가 보면, 이것은 분할을 만듭니다 오른쪽에는 일종의 테이블이 있습니다 파란색 점 11 개와 빨간색 점 11 개가 있습니다 사무용 겉옷 이 분할 작업을 수행하면 서로 다른 두 그룹을 만듭니다

왼쪽의 그룹에는 1, 2, 3, 4, 5, 6, 7, 8 개의 파란색 점이 있습니다 그리고 하나의 빨간 점 오른쪽 그룹에는 파란색 점 3 개와 7 개 8 개의 빨간 점 우리가 볼 수있는 것은 우리가 잘한 일을 했어요 그 점은-빨간 점이 그리 웠습니다 우리는 파란색 점을 잘 나누었습니다 왼쪽의 빨간색 점에서, 오른쪽은 아닙니다

이제 우리는 상상할 수 있습니다 우리는 첫 번째 파티션을 완료했습니다 우리는 말할 수 있습니다 이것은 괜찮은 분리처럼 보입니다 스플릿을 더 추가하면 더 잘할 수 있습니다

다른 수직 직선을 그리겠습니다 빨간색 점을 오른쪽의 파란색 점과 분리합니다 여기에 수직선을 넣으십시오 그리고 우리는 왼쪽에 하나를 할 것입니다 이제 알 수 있습니다 우리는 정말 좋은 일을했습니다

하단의 파란색 점과 빨간색 점을 분리합니다 왼쪽 하단은 대부분 파란색이고 오른쪽 하단은 대부분 빨간색입니다 새로운 데이터를 볼 수 있다면 이 데이터에 대해 배웠지 만 우리는 이미 이러한 고객들이 불이행을 알고있었습니다 따라서 우리는 다음과 같은 데이터에서 잘 작동하는 모델을 원합니다 실례합니다

데이터에 잘 맞는 모델을 원합니다 이전에 보지 못했던 새로운 데이터에서 색깔이 무엇인지 모릅니다 우리는 미래에 볼 수 있습니다 왼쪽 하단에있는 대부분의 사람들이 그들이 기본값이 아니라고 예측하게 될 것입니다 오른쪽 하단에있는 대부분의 사람들이 반면 대출에 대출이 불이행 될 것으로 예측합니다 상단에 우리는 더 많은 분할을 원할 수도 있습니다

예를 들어 더 깊이 들어가고 싶을 수도 있습니다 더 많이 분리하기 위해 여기 저기 선을 그릴 수 있습니다 우리가 보게 될 것은 소프트웨어가 자동으로 시각적 해석을 바탕으로이 선을 그렸습니다 이 줄거리의, 그러나 우리는 정말로 알고리즘을 원합니다 그것은 우리를 위해 이것을 할 것입니다

언급하지 않은 것은 이것들이 단지 두 개의 입력이라는 것입니다 세 번째 입력 값이 있다면 세 개의 변수가 있다면 저는 이것을 부채 비율과 주택으로 언급했습니다 우리는 몇 년 동안 일할 수있는 또 다른 것을 가질 수 있습니다 그것은 3 차원이 될 것입니다 페이지에서 나옵니다 내가 두 개만 선택한 이유를 알 수 있으므로 시각화 할 수 있습니다

하지만 실제로 1, 2, 3, 4, 5, 6, 7, 8, 9, 10은 고객에 대해 수집 한 11 개의 입력 변수 머신 러닝을 할 때 수백 개의 입력 변수를 가질 수 있습니다 이 데이터 세트에서 우리는 11 차원 공간에 있습니다 11 차원을 시도하고 시각화 할 수 있습니다 그러나 잘 작동하지 않습니다 실제로 우리는 종종 일을합니다 수백 개의 차원으로

이 그림을 돌리는 것을 상상할 수 있습니다 당신은 모두와 100 차원 공간을보고 이 점들, 그리고 우리는 여전히 평면을 그리고 있습니다 이 경우에는 초평면이됩니다 점을 분리하기위한 100 차원 초평면 분명히 우리는 시각적으로 할 수 없습니다

우리는 컴퓨터가 우리를 위해 그것을하도록해야합니다 알고리즘 방식으로 소프트웨어를보고 결정이 어떻게 진행되는지 살펴 보겠습니다 트리는이 데이터를 기반으로합니다 Model Studio에서 약간의 파이프 라인을 만들었습니다 그리고 내가 만든 방법에 대한 몇 가지 예를보고 싶다면 이 파이프 라인과 Model Studio를 사용하고 시작하는 방법, 시작에 대한 비디오 링크가 아래에 있습니다 Model Studio에서 파이프 라인을 사용합니다

의사 결정 트리 기본값을 마우스 오른쪽 버튼으로 클릭합니다 노드에서 결과를 선택하십시오 의사 결정 트리의 결과를보고 있습니다 이 HMEQ 데이터 세트에 대해 교육했습니다 가장 먼저 살펴볼 것은 트리 다이어그램입니다 이 트리 다이어그램에는 의사 결정 트리의 그림이 있습니다 보시다시피 훨씬 더 깊은 의사 결정 트리입니다 내가 오른쪽에 그린 예보다

상단을 확대하면 우리는 3,000 명으로 시작합니다 실례합니다 3,000 개의 관측치와 약 20 %는 1과 80 %입니다 0입니다 이는 고객의 약 20 %가 불이행을 의미합니다 그들의 대출에

우리는 연체 크레딧 한도에 따라 분할합니다 연체 된 신용 한도가 많으면 그들은 거의 모두 대출에 대한 채무 불이행이 될 것입니다 그래서 우리는 그들이 대출에 대한 채무 불이행이 예상됩니다 12, 15, 7, 6 또는 8 개의 연체 크레딧 한도가있는 경우 그들이 그보다 적은 경우 5, 4, 0, 1, 2, 3 크레딧 한도 그들이 불이행 한 사람들의 일종 인 것 같습니다 불이행하지 않은 사람들은 거기에서 계속 쪼개기 위해 이 의사 결정 트리를 광범위하게 살펴보면 굵은 선이 나타내는 것을 볼 수 있습니다 대부분의 데이터가가는 곳과가는 선 소량의 데이터를 나타냅니다 하단의 상자는 최종 결정 상자입니다 보시다시피이 상자는 이 상자에 들어가서 그들이 따르는 특정한 길이 있습니다

그들은 적은 수의 연체 신용 한도를 가지고 있습니다 그러나 그들의 집의 가치는 $ 474,000 이상입니다 직장 생활은 26 세 미만입니다 우리는이 사람들의 대부분이 대출에 불이행 될 것으로 예상합니다 과거 데이터에서 이 의사 결정 트리에서 확인할 수있는 것 중 하나 내가 읽었던 것처럼 우리는 내가 오버 피팅이라고 부르는 것을 조금했습니다 우리는 훈련 데이터를 기억했습니다

연체 크레딧 한도가 많으면 나는 당신이 대출에 대한 채무 불이행을 말한다 하지만 실제로는 특정한 숫자입니다 12, 15, 7, 6 또는 8 그 숫자는 데이터의 일부입니다 우리는 의사 결정 트리를 배웠습니다 그래서 우리는 더 나은 것을 원할 수도 있습니다 새로운 고객에게 좀 더 나은 일반화를 제공합니다

이 트리 다이어그램을 닫고 결정을 닫습니다 트리 결과 및 다른 의사 결정 트리로 이동합니다 내가 구체적으로 만든 곳에서 만든 내가 생각하지 못한 리프 노드의 일부를 절단하려는 노력 중요했다 실제로 컴퓨터가 자동으로이 작업을 수행하도록했습니다 의사 결정 트리 다이어그램을 열어 보겠습니다 우리는 그것이 다른 나무라는 것을 알 수 있습니다

조금 다르게 훈련했습니다 내가 훈련했을 때 내가 한 일은 훈련 데이터를 암기하는 완전한 의사 결정 트리를 구축했습니다 다시 돌아 가면 우리가 고유하게 선택한 도면으로 돌아 가면 각 상자가 하나의 색상 만 선택하도록 파란색과 빨간색 점 포인트-그래서 그것은 훈련에서 100 % 권리를 얻는 나무입니다 데이터 이 나무를 만들면 다시 자르기 시작합니다 이전에는 본 적이없는 데이터를 살펴 봅니다 우리는이 모델이 결코 가지고 있지 않은 데이터를 봅니다 그것을 훈련시키는 데 사용되지 않았으며 우리는 그것이 어떻게 작동하는지 보았습니다 성능을 개선 할 때마다 줄일 때마다 우리는 계속 나무를 자르고 더 간단하고 간단합니다

결국 여기에서 새 데이터에 대한 성능이 향상됩니다 더 간단한 모델을 사용하는 것이 바람직합니다 여기를 보면,이 가지 치기 오류 도표 내가 논의했던 절차를 정확하게 보여줍니다 우리는 훈련 데이터, 즉 데이터 우리는 모델, 성능을 구축하는 데 사용 점점 더 많은 잎을 가지면서 계속 향상되고 더 복잡한 나무입니다 하지만 검증 데이터는 데이터입니다 나무는 전에 본 적이 없으며 실제로 악화됩니다

그래서 우리는 나무를 멈추고 가장 복잡한 나무를 만듭니다 우리는 훈련 데이터에 대해 나뭇잎을 자르기 시작합니다 실제로 잘 작동하는 것을 만들 수 있도록 유효성 검사 데이터에 어떤 시점에서 모델이 너무 단순하다면 유효성 검사 데이터의 성능이 좋지 않습니다 이것이 의사 결정 트리에 대한 우리의 토론이었습니다 몇 가지 평가 통계를 볼 수 있습니다 그러나 모든 모델을 비교할 때 마지막에 할 것입니다

우리는 결정 트리가 우리는 가지 치기를 만들었습니다 두 번째로 보여 드린 것은 실제로 이 데이터에 대해서는 첫 번째 데이터보다 조금 더 잘 작동합니다 다이어그램으로 돌아가서 이제 신경망을 만들고 있습니다 의사 결정 트리와 어떻게 다른지 생각합니다 다른 모델과 정말 인기있는 모델 요즘은 신경망입니다

그들은 특히 인기가 있기 때문에 보다 복잡한 형태의 기계에 사용 딥 러닝이라는 학습 이미지 처리와 관련이 있습니다 우리는 신경망을 사용하여 의사 결정 트리에서 수행 한 것과 동일한 작업 빨간색 점과 파란색 점을 분리하는 것입니다 가장 큰 차이점은 의사 결정 트리입니다 신경망은 실제로 임의의 비선형을 배우려고합니다 입력을 출력에 매핑하는 기능입니다

이 임의의 비선형 함수 플롯에서 원하는 모양을 취할 수 있습니다 따라서 우리의 경계가 반드시 그런 것은 아닙니다 직선이 될 것입니다 그래서 내가 상상할 수있는 것을 그릴 것입니다 신경망은 생각할 것입니다 보시다시피, 저는 임의의 곡선을 그리는 것입니다 그리고 유일한 요구 사항은 이러한 곡선이 기능이어야합니다- 함수에 의해 정의 될 수 있어야합니다

당신이 볼 수있는 것은 기본적으로 파란색 점을 선택하고 이상적인 결정을 내 렸습니다 경계 신경망은 항상 가장 좋은 모델이지만 단점은 우리는 훈련 데이터를 외우고 싶지 않다는 것입니다 모델을 새 데이터에 적용하려고합니다 그리고 당신은 내가 그린 원의 크기를 볼 수 있습니다 내가 그린 곡선의 크기 그것은 무엇과 매우 다를 수 있습니다 여전히 모든 파란색 점을 캡처하면서 빨간 점은 없습니다

제 개인적 드로잉에는 모호성이 많습니다 신경망이 학습 할 때 이 기능들은 여러 기능 중 하나를 찾습니다 이 작업을 수행 할 것이므로 반드시 유효성 검사 데이터에서 어느 것이 더 잘 작동하는지 알 수 있습니다 따라서 훈련 데이터를 약간 맞추기가 더 쉽습니다 신경망을 통해 다음 예제에서 신경망은 규칙 목록을 생성하지 않습니다 오른쪽에 다이어그램이 없습니다 이 선을 어떻게 그리는지 보여 드리기 위해 그러나 그들은 기능을 생성합니다 함수를 정의하는 숫자 모음입니다

실제로 모델링 할 수있는 방법이 있습니다 하지만 여기에 자세히 표시하지 않습니다 시각적 인 표현이 아니기 때문에 기본적으로 방정식 일뿐입니다 이것이 신경망 사이의 큰 차이점입니다 의사 결정 트리는 의사 결정 트리입니다 이 규칙 목록을 만듭니다 연체 크레딧이 7 개 이상인 경우 우리가 예측하는 것보다 당신의 대출에 대한 채무 불이행

그 이유를 누군가에게 설명해야하는 경우 매우 유용합니다 당신이 당신의 모델에서 한 일을했습니다 신경망과는 달리 장면 아래에 많은 숫자를 생성합니다 모든 숫자를 곱하면 예측 가능성을 알려줍니다 따라서 결과를 전혀 해석 할 수 없습니다 소프트웨어로 돌아갑니다

신경망 모델을 구축했습니다 신경망의 파이프 라인을 볼 수 있습니다 파이프 라인보다 조금 더 복잡합니다 의사 결정 트리 방금 데이터에서 의사 결정 트리로 바로 넘어갔습니다 신경망 노드의 경우 변수 관리 노드, 대치 노드, 및 변수 선택 노드 우리는해야합니다-변수를 관리해야합니다 대치에 대한 메타 데이터를 설정하려면 변수 선택

대치에서 우리는 교체해야합니다 데이터에 누락 된 값이 있습니다 의사 결정 트리는 결 측값이 어느 지점 에나 있습니다 따라서 선을 그리면 결 측값 줄의 어느 쪽이든 갈 수 있습니다 신경망은 방정식을 만들고 방정식에는 숫자가 필요합니다

결 측값은 숫자가 아니므로 교체해야합니다 우리는 그것들을 평균으로 대체 할 것입니다 우리가 결정 트리를 만들 때, 각 분할에서 분할 할 변수를 선택했습니다 예를 들어 첫 분할은 연체 신용 한도였습니다 연체 크레딧 한도 부채 대 소득 비율

신경망은 자동으로되지 않습니다 사용할 변수를 선택하십시오 대신에 그것들을 모두 방정식에 넣습니다 다시 말하지만 방정식이기 때문에 모든 변수 방정식의 숫자를 곱하십시오 변수 선택 노드를 사용합니다 신경망으로 들어가는 변수를 선택합니다 변수의 수를 제한하고 싶습니다 신경망으로 들어가서 유용한 변수를 사용하십시오

의사 결정 트리에서 모든 변수가 아님을 알았습니다 유용했습니다 신경망을 마우스 오른쪽 버튼으로 클릭하고 결과를 선택합니다 가장 먼저 강조 할 것은이 신경망 다이어그램입니다 나는 다양한 정통이기 때문에이 사진을 좋아합니다

이 사진이 마음에 들지 않아서 유용한 정보가 많지 않습니다 누군가를 보여주는 것은 좋은 사진입니다 신경망을 구축했다면 다음과 같습니다 가장 먼저 보는 것은 세 개의 입력 변수를 사용한다는 것입니다 11 개의 변수로 시작했습니다 하지만 우리는 그중 세 가지만 사용하기 때문에 변수 선택 내가 쓸모없는 것 이 점들의 크기는 숫자 가중치의 크기 방정식을 만드는 데 사용되지만 이미 당신은 정말 해석 할 수 없다고 그 방정식의 의미 또는 그 무게의 의미 정말 해석하기 쉽지 않습니다

이 도표는 당신에게 그림을 보여줍니다 나타내는 신경망의 방정식을 만드는 방법 신경망에 익숙하다면 이 다이어그램을보고 적어 둘 수 있습니다 방정식이 어떻게 보일지에 대한 모델 당신은 분명히 거기에 들어가는 모든 숫자가 빠졌을 것입니다 숫자를 뽑아야합니다 알다시피, 우리는 derog를 사용하고 있습니다

그것은 멸시 신용 보고서입니다; 연체 신용 한도 인 delinq; 목표 BAD를 시도하고 예측하기위한 부채 대 소득 비율 이 다이어그램을 닫고 신경의 결과를 닫습니다 네트워크 노드와 모델 비교로갑니다 우리가 다른 모델에서 어떻게했는지 보려고합니다 시각적 결과가 훨씬 적다는 것을 알 수 있습니다 사실에 연결되는 신경망을 위해 의사 결정 트리는 기본적으로 해석 가능합니다 신경망이 생성하는 반면 모델 백엔드에 많은 숫자

많은 결과는 숫자입니다 그 숫자 결과를 가져 와서 적용 할 수 있습니다 모델 비교 노드를 열고 오류가 줄어든 의사 결정 트리와 정리 한 사람 이니까 훈련 데이터에 큰 결정 트리를 구축 한 곳 그런 다음 잘라 내고 실제로 가장 잘 수행했습니다 오 분류 율 신경망의 오 분류 율 약 20 %였습니다 이는 신경망 모델이 실제로 관심있는 정보를 포착하지 못했습니다

설명하는 가장 쉬운 방법은 이것은 의사 결정 트리가 더 간단한 모델이라는 것입니다 이것은 더 간단한 데이터 세트입니다 이 데이터 세트의 한 가지 문제는 신경망을 손상시킬 수 있습니다 직업과 같은 범주 형 입력 변수입니다 우리는 다른 사람들의 직업 목록을 가지고 있습니다 신경망은이 변수들과 잘 어울리지 않습니다 의사 결정 트리로

신경망 모델은 우리가 관심있는 것을 포착하지 못했습니다 실제로이 데이터 세트에서 작동하지 않았습니다 그러나 우리는 결정의 차이점을 강조하고 싶었습니다 나무와 신경망 그리고 일반적으로 찾을 수있는 것 새로운 데이터를 다루면서 작업해야 할 모든 데이터, 일부 모델은 다른 모델보다 더 잘 작동합니다 데이터가 정말 단순하다면 의사 결정 트리 및 선형 회귀 모델을 찾을 수 있습니다

정말 잘 작동합니다 데이터가 정말 복잡하다면 제대로 작동하지 않으면 신경망이 더 나은 모델이라고 제안합니다 제가 말할 한 가지는 의사 결정 트리가 실제로 잘 작동한다는 것을 알았습니다 반드시 제안 할 필요는 없습니다 신경망이 제대로 작동하는지 확인하십시오

두 모델을 비교해 보는 것이 좋습니다 기계 학습에 대해 배우기 위해 함께 해 주셔서 감사합니다 기초 우리는 의사 결정 트리에 대해 조금 이야기했습니다 일부 신경망 모델 구독하고 더 많은 비디오를 확인하십시오

아래 링크를 확인하십시오 질문이 있으시면 의견에 자유롭게 넣으십시오 감사

Wake County, NC | Improve property assessments with AI and Machine Learning | SAS Customers

MARCUS KINRADE : 순 마이그레이션을하고 있습니다 약 62 명의 사람들이 매일 웨이크 카운티에옵니다

그래서 언제든지 우리는 6 ~ 7 개의 학교를 세우고 있습니다 우리는 24,000 건의 건축 허가를 받고 있습니다 우리는 매년 12,000 개의 주거용 주택을 추가하고 있습니다 그래서 우리는 추가 기술을 찾고 있습니다 그리고 SAS 인공 지능 기술 우리에게 꼭 맞는 것 같았다

기계 학습 값을 비교하는 데 활용 재산을 평가하는 우리의 전통적인 방식으로 따라서 우리는 SAS에 신선한 가득한 부동산을 제공합니다 매일 밤 파일 그리고 SAS 모델은 310,000 개의 주거용 소포를 모두 재평가합니다 매일 밤 AI 기술을 사용하여 값을 결정합니다

그런 다음 시간 조정을 사용하여 예측 된 2020 년의 가치 따라서 우리의 전통적인 일정표, CAMA 값은 SAS AI 값을 가지며 2, 납세자를 보여주는 것은 우리 사업에 큰 이익이됩니다 SAS와의 협력으로 많은 돈을 아낄 수있었습니다 감정 평가사를 훨씬 더 적게 고용해야했습니다 그리고 우리는 더 빠르고 정확하게 작업을 수행 할 수 있습니다

SAS Visual Data Mining and Machine Learning

나는 트럭 하트, 글로벌 제품 마케팅 해요 고급 분석에 대한 관리자, 저 오늘 가입 조나단 웩슬러, 주요 제품입니다 SAS의 기계 학습 제품군에 대한 관리자 조나단, 오늘 나와 함께 이야기 주셔서 감사합니다

조나단 웩슬러 : 여기 다행,화물 자동차, 우리의 새로운 릴리스를 논의합니다 트럭 HARDT : 정당, 거기에 공급 둘러싸 과대 많이 고급 모델링 기술, 기계 학습 등 이것은 C 레벨 엔터프라이즈 아키텍처의 지도자오고있다 수석 분석 임원 이건 정말 화제가되고있다 이에 대한 당신의 생각은 무엇입니까? 왜 지금? 조나단 웩슬러 : 트럭은 정직합니다 기계 학습은 새로운 개념이 아니다

등의 신경 네트워크와 같은 이러한 기술의 많은, 몇 년 동안 주변되었습니다 이 기술은 마침내이 단지입니다 분석에 대한 계산이 필요 잡았다 의심스러운 거래를 포함하여 많은 복잡한 데이터 소스, 활동, 추천 엔진, 복잡한 이미지를 분석한다 트럭 HARDT : 핵심 분야 중 하나 우리는 기계 학습을 논의 할 때 심지어 수 있도록 전문가가 아닌 데이터 과학자 또는이다 능력과 비즈니스 분석가 빠르게 탐색 및 모델 데이터 SAS 비주얼 데이터 마이닝과 기계의 SAS의 최신 릴리스에서 이 제품은 주소 참조 어떻게, 학습 작업 이러한 유형의? 조나단 웩슬러 : 트럭, SAS 비주얼 데이터 마이닝 및 기계 학습은 사용자 수 빠른 속도로 매우 자신의 모델을 확장 시각적 상호 작용하는 방법 이 솔루션은 경험에서 데이터를 분석 할 수있게합니다 그들은 편안하게 느낀다

그들은 신속하게 상호 작용 모델링 데이터 준비에서 갈 수 있습니다 마지막으로 고급 파이프 라이닝 및에 그리고 가장 중요한, 배포에 대한 모든 이 하나 개의 솔루션 내에서 의 행동에 SAS 비주얼 데이터 마이닝과 기계 학습을 보자 내 특정 유스 케이스를 위해, 나는 시도하고있다 화학적 요인 도움이 무엇인지 분석하는 나 와인의 품질을 예측하고있다 나는 이미 데이터 준비를 사용하여 내 데이터를 준비했습니다 SAS 비주얼 데이터 마이닝과 기계 학습의 영역, 지금은 탐구하고 확장하는 과정에있어 고급 기계 학습 기술을 사용하여 내 분석 그래서 매우 빠르게 신경 네트워크에 추가 할 수 있습니다, 나는 내 신경 네트워크를 구축하기 전에, 이 시스템은 나에게 표시를 제공합니다 무엇 나는 구축하려고 해요

내가 신경 네트워크에 익숙하지있어 경우에 따라서, 그것은 네트워크 다이어그램에 추가하는 약의 저를 보여줍니다 다양한 평가 지표 그리고이 신경 네트워크를 구축하는 것은 매우 쉽습니다 난 그냥 내 속성과 신경 네트워크를 선택할 수 있습니다 거의 실시간으로 자신을 구축 할 것입니다 나는 신경 네트워크와 상호 작용할 수 있습니다 추가 숨겨진 레이어를 추가하여 나는 활성화를 변경할 수 있습니다 숨겨진 레이어 자체의 기능을합니다

또한 추가 옵션을 편집 할 수 있습니다 난 SAS의 고급 오토 튜닝을 이용할 수 있습니다 여기서 모델은 자동 것이다 최고의 성능 나를 위해 속성을 찾을 수 있습니다 또한보고 내 결과를 해석 할 수 상대적 중요성 플롯에서 일반적으로 기계 학습 모델은 블랙 박스입니다 당신은 표시를 부여하지 않는 모델을 구동하는 가장 중요한 요소 트럭 HARDT : 조나단, 당신은 언급 이 최신 버전의 사용자는 빠르게 자신의 분석을 확장 할 수 있습니다

당신은 분석 확장의 유형의 예를 들어 주실 수 있습니까? SAS 비주얼 데이터 마이닝 내 물론,화물 자동차, : 조나단 웩슬러 및 기계 학습, 우리는 사용자에게 기능을 제공 혼합과 일치하여 대화 형 모델을 향상시키기 위해 다른 기술보다 진보 된 방법을 적용, 심지어 자신의 분석에 프로그래밍을 통합 의 그 신경망으로 돌아 가자 무엇 SAS 비주얼 데이터 마이닝과 기계 학습 이 신경 네트워크를 확장되어 수행 할 수 있습니다 및 파이프 라인을 만들어 그 위에 구축 할 수 있습니다 그리고 파이프 라인을 만들어,이 수 나 다른 고급 기계 학습 기술을 시도합니다 그리고 당신은 파이프 라인이 나타내는 여기에 볼 수 있습니다 나는 내부했다 모든 단계 답사의 환경을 제공합니다

하지만이 고급보기로 해요 지금, 나는 나에게 더 고급 기술을 사용할 수 있습니다 그래서 예를 들어, 나는 이상 탐지를 시도 할 수 있습니다 하나에은 이상 치를 제거하거나 별도로 모델링 나는 또한 다른 고급 기술에 추가 할 수 있습니다 나는 의사 결정 트리 노드에 추가 할 수 있습니다 또한 예를 들어, 그라데이션 노드를 증폭에 추가 할 수 있습니다

그리고 시스템이 자동 것이다 나를 위해 최고의 성능 모델을 선택합니다 이제 결과를 살펴 보자 이 경우, 그라데이션 고른 가장 높은 KS 통계와 모델을 강화, 그러나 또한 상호 작용하는 신경 네트워크에 자신을 비교 나는 구축하고 내가 추가 의사 결정 트리 있음 시스템이 자동으로 나를 위해 최고의 모델을 포착 또한 옵션을 변경하여이 파이프 라인을 사용자 정의 할 수 있습니다

나는이 분석을 향상 할 수있는 완벽한 유연성을 갖추게된다 트럭 HARDT : 조나단, 당신은 언급 사용자는 신속하게 협업하고 공유 할 수 자신의 분석 사용자는 어떻게 이러한 모범 사례 템플릿을 활용할 수 있습니까? 조나단 웩슬러 : 상자, SAS의 아웃 가장 좋은 방법은 템플릿의 시리즈를 제공 할 것입니다 이들은 SAS 도구 상자에 저장됩니다 데이터 과학자는 자신의 파이프 라인을 만들 수 있습니다 지역 사회와 함께 공유하는 결국, 비즈니스 분석가가 권한을 부여한다 빠른 결과를 생성합니다

우리가 이미 구축 한 파이프 라인으로 돌아 가면, 나는 SAS 도구 상자에 액세스 할 수있는 저 역시 SAS 최선의 방법을 활용할 수 파이프 라인, 심지어 파이프 라인에 추가 내 동료 중 하나, 검증 된 모범 사례에서 지금이 가장 좋은 방법은 파이프 라인은 믹스 앤 매치가 있습니다 그라데이션에서의 다른 고급 기술 균일 우리의 오토 튜닝을 사용하여 강화 깊은 신경망 심지어 SAS 코드를 가능하게하는 기능이 있습니다 의 그것을 실행하자 그리고 당신은 여전히 ​​증폭 그라데이션을 집어 볼 수 있습니다 가장 높은 KS 통계를 한 모델

또한 거기에 앙상블 모델을했다 또한, 내 의사 결정 트리에 대한 자동 튜닝을했다 그것은 또한 로지스틱 회귀에 추가 깊은 신경 네트워크,하지만 그라데이션 강화 여전히 챔피언 모델이었다 지금은이 파이프 라인은 또한 수 있습니다 언급 사용자가 자신의 코드를 작성합니다 이 시스템을 사용하면, 사전 구축 된 SAS 노드를 사용할 수 있습니다뿐만 아니라, 그러나 당신은 또한, SAS 코드에 추가 할 수 있습니다 당신은 완벽한 SAS의 언어가 당신의 손끝에서 제공하는 것은 할 수 절차, 매크로, 데이터 단계에서 추가 할 수, 기타 등등 그래서 당신은 정말 최고의 모델을 구축 할 수 있습니다 그 데이터를 저장하기위한 의미가 있습니다

트럭 HARDT : 당신에게서 또 다른 생각 분석적 수명주기는 더 이상 논쟁하지 않습니다 지원이 필요하다 당신이 행동으로 그것을 얻을하지 않는 한 모델의 전체, 신속하게 대응하기 위해 사업을 활성화 필요한 경우 조치를 취할 것입니다 마찬가지로, 우리는 열려있는 세계에 살고 있습니다

당신이 얻을 수있는 능력에 대해 이야기 할 수 내부 및 외부 생산이 모델 조직 내? 조나단 웩슬러 : 물론, 트럭입니다 규모와 수요가 증가함에 따라 이 적절하게 조정 된 분석 모델, 효과적인 배포 전략 및 아키텍처를 가진 웹 로그 분석 라이프 사이클의 핵심 구성 요소입니다 내가 몇 단계를 보자 내 파이프 라인으로 돌아 가야한다면,하자 우리는 매우 신속하게이 모델을 배포 할 수있는 방법을 살펴 보자 그래서 파이프 라인 비교 영역에 가서 경우, 이 화면은 모델을 비교합니다 내가 만든 한 다른 파이프 라인에서

자동으로 나를 위해 최고의 모델을 선택합니다 지금은이 파이프 라인 비교를 재정의 할 수 있습니다, 난 도전자에 추가 할 수 있지만 한 번 I 수 내가 배포 할 모델 또는 모델로 결정했습니다, 시스템은 방법이를 배포 할 수 있습니다 당신이 맞는 볼 것을 당신은 데이터베이스 또는 하둡에이 모델을 게시 할 수 있습니다 어떤 재와 한 번의 클릭으로 나는 즉시이 모델을 득점 수 그들은 데이터베이스에 밀려있어 한 번 이 건물의 엄청난 유연성을 허용 즉시 모델을 테스트

나는 또한 득점 API를 다운로드 할 수 있습니다 이 API 호출은 여러 가지 방법으로 사용자에게 제공됩니다 그것은하는 SAS 래퍼 그들에게 주어진 것 그러나 또한 파이썬에 싸여 사용자는 전화를 수있는 능력을 가지고 그래서 방법에서는 이러한 방법 및 점수 코드 그들이 맞는 볼 것을 그리고 당신은 웹 응용 프로그램이 있다면, 우리는 심지어 당신에게 REST API 호출을 줄 것이다

그래서 당신은 방법으로 이러한 모델을 호출 할 수있는 능력을 가지고 당신이 맞는 볼 것을 트럭 HARDT : 조나단, 공유를위한 감사합니다 순전히 SAS 비주얼 데이터 마이닝 및 기계 오늘 우리와 함께 학습 조나단 웩슬러 : 당신은 트럭을 매우 환영합니다 트럭 HARDT : 시청 주셔서 감사합니다