기술 지표 및 도구

마지막 업데이트: 2022년 3월 1일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
이 포스트에 쓰인 예제 Jupyter 노트북 코드를 여기에서 확인해 보세요!

Research Platforms

엘스비어의 학제 간 융합 플랫폼은 긴 연구 여정을 지원하고 연구 및 경력 관리를 가능하게 하며 연구자가 자신의 분야에서 더 큰 영향력을 발휘할 수 있도록 돕습니다.

연구자는 과학과 의학, 기술 지식을 강화하는 도구로 아이디어를 교환, 검증, 적용 가능한 디지털 환경을 추구합니다. 엘스비어의 플랫폼에서 Scopus를 통해 5,000곳이 넘는 출판사로부터 데이터를 찾고 분석하며, ScienceDirect를 통해 엘스비어가 출판한 선도적인 전자책과 저널 논문에 액세스하고, Mendeley를 통해 무료로 귀하의 연구를 관리하고 프로필을 공개할 수 있습니다. 이러한 플랫폼을 통해 데이터와 콘텐츠를 더 쉽게 검색하고 접근하며 분석하고 공유할 수 있습니다.

서비스 내용

엘스비어의 학제 간 융합 플랫폼은 긴 연구 과정을 지원하고 연구 및 경력 관리를 가능하게 하며 연구자가 자신의 분야에서 더 큰 영향력을 발휘할 수 있도록 돕습니다.

Scopus

Scopos는 최대의 전문가 심사 문헌 초록 및 인용 데이터베이스로, 과학, 기술, 의학, 사회과학, 예술 및 기술 지표 및 도구 인문학 분야의 세계적 연구 결과에 대한 개요를 제공합니다. 5,000여 출판사의 콘텐츠를 손쉽게 탐색, 분석, 시각화합니다.

ScienceDirect

엘스비어의 첨단 정보 솔루션으로 전 세계 1천 5백 만여 명의 연구자와 교사, 학생, 의료 전문가, 정보 전문가가 더 영향력 있는 연구를 할 수 있도록 지원합니다. ScienceDirect는 과학 기술, 의료 분야의 권위 있는 출판물 원문을 직관적이고 스마트한 기능과 결합하여 사용자가 각 전문 분야의 최신 정보와 동향을 파악하고 더욱 효과적이고 효율적으로 연구하도록 지원합니다. ScienceDirect는 엘스비어와 엘스비어의 임프린트, 소사이어티 파트너가 제공하는 3,800여 종의 저널과 3만 5천여 권의 도서에 수록된 1천4백만여 간행물을 통해 더 스마트한 연구 활동을 지원합니다.

Mendeley

연구를 조직하고 다른 이들과 온라인으로 협조하며 최신 연구에 관해 알아볼 수 있도록 도와주는 무료 참고문헌 관리자 및 학술 사회 네트워크입니다. 기관에서 Mendeley를 사용하려면 Mendeley Institutional Edition에 대해 자세히 알아보십시오.

SSRN

세계 최대의 견본 인쇄 오픈 액세스 리포지토리 겸 온라인 커뮤니티입니다. 엘스비어가 최근 인수한 SSRN은 엘스비어의 학술 협력 네트워크인 Mendeley와 더불어 개발되어 사용자에게 첨단 콘텐츠, 데이터 연결, 향상된 지표 및 연구자 워크플로 도구를 제공하고 Mendeley의 소셜 커뮤니티 전략을 가속화하게 될 것입니다.

지원 내용

엘스비어의 Research Platforms 은 아이디어 구상에서 연구 수행, 영향 분석에 이르는 오랜 연구 과정을 지원합니다.

연구 활성화

    를 통해 5,000여 출판사의 문헌 검토 Author Evaluator로 저자 추적
  • ScienceDirect 추천 논문을 통한 추가적인 탐색 를 통해 연구 논문 및 공개 그룹 검색 로 공동 연구자 찾기 Author Evaluator로 저자 분석 에서 저자의 h 지수 보기 로 협력자 식별
  • Mendeley에 개인 그룹이나 공개 그룹 생성 자원을 이용해 경력 활성화

연구 수행

  • 오픈 액세스 콘텐츠를 포함하여 ScienceDirect의 저널 및 도서 검색 으로 다른 연구자들이 어느 논문을 읽었는지 확인
  • ScienceDirect에서 이미지, 대화식 그래프, 표 및 그림을 보고 논문을 더 깊이 이해
  • Scopus를 사용하여 5,000여 출판사의 콘텐츠 원문 찾기
  • ScienceDirect 및 Scopus 데이터를 Mendeley와 같은 참조 관리자로 이전 및 모든 기기에서 Mendeley를 이용한 협력
  • ScienceDirect 및 Scopus 알림 서비스를 통해 최신 동향 파악

연구 공유

  • 엘스비어를 통해 출판한 자신의 논문을 지인과 동료에게 공유 을 통해 적합한 저널 선택 지표를 사용하여 저널 및 논문 영향력 추적
  • 삽화 및 멀티미디어 확장으로 풍부한 논문 구성
  • 엘스비어를 기술 지표 및 도구 통한 오픈 액세스 출판 고려 Mendeley 전문 연구 프로필을 통해 자신의 연구를 전 세계에 소개
  • 엘스비어의 통합 ORCID를 통해 자신의 Scopus 저자 프로필 확인
  • 논문 사용 알림을 통해 논문 다운로드 현황 확인 을 통해 성과 추적

엘스비어가 서비스를 제공하는 대상

엘스비어는 모든 규모의 학계, 정부, 연구 조직 및 개발 조직에 소속된 연구자, 교사, 학생 및 정보 전문가를 지원합니다.

연구자 및 저자

엘스비어는 관리, 공유 및 공동 연구에 도움이 되는 신뢰할 수 있는 전문과 도구를 제공합니다.

교사 및 학생

Scopus, ScienceDirect 및 Mendeley를 사용하여 강의 노트를 준비하고 신뢰할 수 있는 전문가 심사 콘텐츠에 기반한 강의 자료를 공유하십시오. 엘스비어의 플랫폼을 사용하여 대화형 학습 경험을 쌓을 수 있으므로 학생들은 자료를 검색하고 읽을 수 있고 논문과 프로젝트를 위해 함께 작업하며 성공적인 연구 경력을 준비할 수 있습니다.

    를 사용하여 학생들은 정보 활용 능력을 키우고 과학 분야 출판 전망을 이해할 수 있습니다.
  • 오픈 액세스 콘텐츠와 기술 지표 및 도구 무료 액세스 콘텐츠를 포함하여 도서와 저널에 기반한 ScienceDirect의 신뢰할 수 있는 정보에 접근
  • 모든 기기에서 사용 가능한 Mendeley를 이용해 모든 교재를 정리하고 논문을 구성하며 정보 공유 를 위한 엘스비어의 자원을 이용해 연구 경력 활성화

사서 및 정보 전문가

엘스비어는 사서 및 정보 전문가와 이들의 사용자 커뮤니티를 위해 세계적 수준의 Research Platforms을 제공합니다. 솔루션 포트폴리오를 관리하고 사용자에게 플랫폼에 대한 최적의 액세스를 제공하며 사용자 커뮤니티 자원을 최대한 활용하도록 교육하는 데 도움이 되는 특별한 자료를 제공합니다.

설치 및 앱 내 전환 측정

앱 이벤트를 통해 사람들이 앱에서 수행하는 활동을 전체적으로 측정할 수 있습니다. 이벤트를 추적하는 앱 이벤트 기술 지표 및 도구 메서드는 iOS 및 Android용 Facebook SDK에 포함되어 있습니다.

상거래 앱의 Added to cart 나 게임 앱의 level achieved 와 같은 사전 정의된 이벤트를 사용하거나 Facebook 모바일 광고에서 발생하는 참여와 ROI를 이해하는 데 도움이 되는 맞춤 이벤트를 사용할 수 있습니다. 다음과 같은 기능을 사용할 수 있습니다.

횟수 및 가치 측정

앱 내에서 수행된 행동의 총 횟수 및 가치를 측정합니다.

취한 행동 측정

특정 광고 캠페인으로 인해 발생한 행동의 횟수와 가치를 측정합니다.

기술적 구현

설치 추적

앱 광고용 Facebook SDK 사용에 대한 가이드를 참조하세요. 설치 추적을 활성화하려면 Facebook SDK가 필요합니다.

앱 내 전환

이벤트 추적에 앱 이벤트를 사용하면 이러한 이벤트에서 발생한 활동 횟수와 가치가 자동으로 광고 캠페인의 결과로 간주됩니다.

보고 도구

Facebook은 광고 관리자Facebook 분석을 통해 다양한 사용 사례별로 특성화된 보고 도구를 제공합니다. 광고 관리자는 일반 광고와 캠페인의 성과를 측정하는 데 가장 적합하며, Facebook 앱 분석은 앱 내 활동에 대해 더 나은 인사이트를 기술 지표 및 도구 얻는 데 도움이 됩니다.

광고 관리자

광고 관리자는 광고의 성과, 타겟 및 노출 위치에 대한 인사이트를 얻기 위해 바로 사용할 수 있는 도구입니다. 앱에 Facebook SDK를 추가하면 광고 관리자를 사용하여 앱 설치와 앱 내 전환을 측정할 수 있습니다.

표준 보고서

고급 보고서(SDK 필요)

광고 관리자의 설치 후 결과

구매 이벤트를 사용하면 광고 관리자 내에서 모바일 앱 설치 광고 캠페인의 설치 후 결과를 확인할 수 있습니다. 이러한 인사이트를 보는 방법은 두 가지입니다. 첫 번째 방법은 테이블 보기를 이용하는 것입니다. 광고 관리자에서 리스트 설정을 선택하고 설치 후 결과를 캠페인 열의 일부로 포함하세요. 선택한 기간을 기반으로 여러 설치 코호트 날짜에 대해 기본 테이블 보기로 이러한 인사이트를 확인할 수 있습니다.

또한 광고 캠페인을 선택한 후 측면 패널에서 그래프 아이콘을 클릭하여 이러한 지표를 차트로 표시할 수도 있습니다. 이 보기에서는 수익, 수율 및 ARPU를 차트로 표시하고 이를 지표별 평균 성과와 비교할 수 있습니다. x축은 시간 범위이고 y축은 차트로 표시하기로 선택한 지표입니다.

수익률(%)은 특정 설치일 코호트의 수익을 동일한 코호트에서 사람들을 확보하기 위해 사용된 비용으로 나눈 값입니다. 예를 들어, 광고 관리자의 특정 캠페인에 대해 날짜 선택 도구에서 시간 범위를 11/01/2015 - 11/02/2015로 선택하고 11/01에 500달러, 11/02에 1,000달러를 지출했습니다. 이제 11/01에 발생한 설치(28일 클릭률 기여)에 대해 11/1의 설치로부터 11/1에 1,000달러, 11/2에 2,000달러, 11/03에 4,000달러의 수익을 얻었다고 가정합니다. 그리고 11/02에 발생한 설치의 경우, 11/2의 설치로부터 11/2에 1,500달러, 11/03에 3,000달러, 11/04에 4,000달러의 수익을 얻었습니다.

11/01/2015 - 11/02/2015의 평균 1일 수익률은 1일간 이 두 날짜의 설치로부터 얻은 총 수익을 이 이틀간 지출된 총 비용으로 나눈 값, 즉 (1000 + 2000 + 1500 + 3000) / (500 + 1000) = 500%입니다. 1일, 3일, 7일, 30일 및 90일 수익률을 확인할 수 있습니다.

사용자당 평균 수익(ARPU)은 기술 지표 및 도구 설치일 코호트에서 얻은 수익을 해당 코호트의 전체 사용자 수로 나눈 값입니다. 예를 들어, 특정 캠페인에 대해 해당 설치일 코호트로부터 500달러의 수익을 얻었고 해당 코호트의 총 설치 횟수가 200개인 경우 ARPU는 2.50달러입니다. 1일, 3일, 7일, 30일 및 90일 ARPU를 확인할 수 있습니다.

모든 원시 데이터에 액세스하려면 차트 보기 섹션 내의 내보내기 버튼을 클릭하여 설치 후 결과를 내보낼 수도 있습니다. 원시 데이터는 설치 코호트 날짜별로 내보냅니다.

Facebook 분석

Facebook 분석을 사용하면 고객 활동, 사람들이 여러 기기에서 앱을 사용하는 방식과 가장 많은 전환을 유도하는 광고를 확인할 수 있습니다. Facebook 분석을 사용하려면 앱에 Facebook SDK를 추가하고 앱 이벤트를 로깅하세요.

ID 기준 메트릭, 지표 및 위험 허용 범위

ID 기준 분야와 관련된 비즈니스 위험 허용 범위를 정량화하는 방법을 알아봅니다. 메트릭과 지표를 정의하면 이 분야의 성숙도에 투자하기 위한 비즈니스 사례를 만드는 데 도움이 됩니다.

ID 관리에서는 개인, 사용자 그룹 또는 자동화된 프로세스를 식별/인증하고 권한을 부여하는 작업과, 이러한 개인/그룹/프로세스에 클라우드 배포의 리소스에 대한 적절한 액세스 권한을 제공하는 작업을 중점적으로 수행합니다. 위험 분석의 일환으로 ID 서비스 관련 데이터를 수집하여 발생한 위험의 수, 그리고 계획된 클라우드 배포에 대한 ID 기준 분야 관련 투자의 중요도를 확인할 수 있습니다.

아래에는 ID 기준 분야 내에서 위험 허용 범위를 평가하하려는 경우 수집해야 하는 유용한 메트릭의 예가 나와 있습니다.

  • 시스템 크기 파악. ID 시스템을 통해 관리되는 사용자, 그룹 또는 기타 개체의 총 수를 확인합니다.
  • 디렉터리 서비스 인프라의 전체 크기. 조직에서 사용하는 디렉터리 포리스트, 도메인 및 테넌트의 수를 확인합니다.
  • 레거시 또는 온-프레미스 인증 메커니즘에 대한 종속성. 레거시 또는 타사 또는 다단계 인증 메커니즘에 의존하는 워크로드 수
  • 클라우드에 배포된 디렉터리 서비스의 범위. 클라우드에 배포한 디렉터리 포리스트, 도메인 및 테넌트의 수를 확인합니다.
  • 클라우드에 배포된 Active Directory 서버 클라우드에 배포된 Active Directory 서버의 수를 확인합니다.
  • 클라우드에 배포된 조직 구성 단위 클라우드에 배포된 Active Directory OU(조직 구성 단위)의 수
  • 페더레이션 범위. 조직 시스템과 페더레이션된 ID 관리 시스템의 수
  • 권한이 상승된 사용자. 리소스 또는 관리 도구에 대한 액세스 권한이 상승된 사용자 계정의 수를 확인합니다.
  • Azure 역할 기반 액세스 제어 사용 그룹을 통한 Azure RBAC(Azure 역할 기반 액세스 제어)를 통해 관리되지 않는 구독, 리소스 그룹 또는 개별 리소스의 수
  • 인증 클레임. 성공/실패한 사용자 인증 시도 수를 확인합니다.
  • 권한 부여 클레임. 사용자의 리소스 액세스 시도 성공/실패 횟수를 확인합니다.
  • 손상된 계정. 손상된 사용자 계정의 수를 확인합니다.

위험 허용 범위 지표

ID 기준 관련 위험은 대개 조직의 ID 인프라 복잡성과 관련하여 발생합니다. 단일 디렉터리 또는 클라우드 기본 ID 공급자(다른 서비스와 최소한으로 통합)를 사용하여 모든 사용자와 그룹을 관리하는 경우에는 위험 수준이 낮은 경우가 많습니다. 비즈니스 요구가 증가하면 ID 관리 시스템이 더 복잡한 시나리오(예: 내부 조직을 지원하는 여러 디렉터리, 외부 ID 공급자와의 페더레이션)를 지원해야 할 수 있습니다. 이러한 시스템이 복잡해질수록 위험도 증가합니다.

클라우드 채택의 초기 단계에서 IT 보안 팀 및 비즈니스 관련자와 협의하여 ID 관련 비즈니스 위험을 파악한 다음 ID 위험 허용 범위의 적절한 기준을 결정합니다. 클라우드 채택 프레임워크의 이 섹션에서는 예제를 제공하지만, 회사 또는 배포에 대한 자세한 위험과 기준은 다를 수 있습니다.

기준이 확정되면 식별된 위험에서 허용되지 않는 증가를 나타내는 최소 벤치마크를 설정합니다. 이러한 벤치마크는 해당 위험을 해결하기 위한 조치를 취해야 할 때 트리거로 사용됩니다. 아래에는 위에서 설명한 것과 같은 ID 관련 메트릭의 수치가 ID 기준 분야의 투자를 늘려야 하는 수준에 해당되는 몇 가지 예가 나와 있습니다.

  • 사용자 계정 수 트리거. ID 시스템에서 관리되는 사용자, 그룹 또는 기타 개체의 수가 x보다 많은 회사의 경우 대량의 계정에서 거버넌스를 효율적으로 적용하기 위해 ID 기준 분야에 투자를 하면 효율적일 수 있습니다.
  • 온-프레미스 ID 종속성 트리거. 레거시 인증 기능이나 타사 다단계 인증이 필요한 워크로드를 클라우드로 마이그레이션하려는 회사의 경우 리팩터링 또는 추가 클라우드 인프라 배포 관련 위험을 줄이기 위해 ID 기준 분야에 투자를 해야 합니다.
  • 디렉터리 서비스 복잡성 트리거. 유지 관리하는 개별 포리스트, 도메인 또는 디렉터리 테넌트의 수가 x보다 많은 회사의 경우 여러 시스템에 분산되어 있는 다수의 사용자 자격 증명과 관련된 효율성 문제 및 계정 관리 관련 위험을 줄이기 위해 ID 기준 분야에 투자를 해야 합니다.
  • 클라우드에서 호스트되는 디렉터리 서비스 트리거 클라우드에서 호스트되는 Active Directory 서버 VM(가상 머신) x대를 호스트하거나 이러한 클라우드 기반 서버에서 x개의 OU(조직 구성 단위)를 관리하는 회사의 경우 온-프레미스 또는 기타 외부 ID 서비스와의 통합을 최적화하기 위해 ID 기준 분야에 투자를 하면 효율적일 수 있습니다.
  • 페더레이션 트리거. 외부 ID 관리 시스템 x대와의 ID 페더레이션을 구현하는 회사는 모든 페더레이션 멤버에 일관된 조직 정책을 적용하기 위해 ID 기준 분야에 투자를 하면 효율적일 수 있습니다.
  • 상승된 액세스 권한 트리거. 관리 도구 및 리소스에 대한 관리자 권한을 보유한 사용자 수가 x%를 초과하는 회사는 사용자에게 액세스 권한을 부적절하게 초과 프로비전할 위험을 최소화할 수 있도록 ID 기준 분야 투자를 고려해야 합니다.
  • Azure RBAC 트리거 Azure 역할 기반 액세스 제어 방법을 사용하는 리소스의 비율이 x% 미만인 회사는 리소스 액세스 권한을 사용자에게 할당하는 최적화된 방식을 파악하기 위해 ID 기준 분야 투자를 고려해야 합니다.
  • 인증 실패 트리거. 인증 실패 비율이 인증 시도 중 x%를 초과하는 회사는 인증 방법이 외부 공격을 받지 않도록 하고 사용자가 올바르게 인증할 수 있도록 ID 기준 분야에 투자를 해야 합니다.
  • 권한 부여 실패 트리거. 액세스 시도가 거부된 시간이 x%를 초과하는 회사는 애플리케이션 및 액세스 제어 업데이트를 개선하고 악의적일 수 있는 액세스 시도를 식별하기 위해 ID 기준 분야에 투자를 해야 합니다.
  • 손상된 계정 트리거. 손상된 계정 수가 1보다 많은 회사는 인증 메커니즘의 강도와 보안을 개선하고 손상된 계정 관련 위험을 해결하는 메커니즘을 향상시키기 위해 ID 기준 분야에 투자를 해야 합니다.

위험 허용 범위를 측정하는 데 사용하는 정확한 메트릭/트리거와 ID 기준 분야의 투자 수준은 조직에 따라 달라지지만 위의 예제는 클라우드 거버넌스 팀 내에서 논의를 진행하는 데 유용한 기준이 됩니다.

다음 단계

ID 기준 분야 템플릿을 사용하여 현재 클라우드 채택 계획에 맞는 메트릭 및 허용 오차 지표를 문서화합니다.

샘플 ID 기준 정책을 시작점으로 검토하여 클라우드 채택 계획과 일치하는 특정 비즈니스 위험을 해결하기 위한 자체 정책을 개발합니다.

기술 지표 및 도구

심층분석

    (지역사회) 간호사업을 평가하고자 할 때 평가유형
    2007.06.04 조회수 3000

[간호사업을 평가하고자 할 때 평가유형]

(지역사회 기술 지표 및 도구 보건사업 평가, 학교 보건사업의 평가, 보건교육의 평가에서 모두 적용할 수 있음)

1. 체계모형에 따른 5가지 평가 범주(사업 자체에 대한 평가)

① 투입된 노력에 대한 평가 : 계획된 인적, 물적, 사회적 자원에 비해 실제 투입 실적이 어떠했는지 평가

② 사업진행에 대한 평가 : 집행계획을 기준으로 그 내용, 일정에 맞도록 수행되었는지 평가하고 차질이 있다면 그 원인을 분석

③ 목표달성정도에 대한 평가 : 설정된 목표가 제한된 기간 동안 어느 정도 달성하였는지 평가하고, 각각의 목표별로 그 정도의 달성을 이루게 된 원인을 규명하여 재목표를 세움

④ 사업효율성에 대한 평가 : 투입된 노력을 비용으로 환산하여 그 사업의 목표 달성 정도와 비교하여 측정

⑤ 사업적합성에 대한 평가 : 대상자의 요구도를 계산하여, 사업 실적과 비교하여 인적, 물적 충족여부를 알아봄

2. Donabedian의 사업 과정에 따른 평가 범주

① 투입평가(구조평가) : 사업에 들어간 인적, 물적, 사회적 자원에 대한 평가

평가지표 : 장소, 기구, 도구, 물품, 인력, 예산, 시간

② 진행평가(과정평가) : 사업에 투입된 인적, 물적 자원이 계획대로 실행되고 있는지, 사업이 일정대로 진행되고 있는지 확인하여 평가

평가지표 : 만족도, 흥미도, 프로그램의 참여율, 교재 적절성(도구적절성, 준비 자료의 적절성), 대상자 적절성

효과 평가 : 설정된 목표에 도달했는가에 대한 평가

평가 지표 : 지식변화, 행위변화, 사업목표달성

효율 평가 : 실제로 투입된 노력과 사업의 결과를 비교하여 효율을 평가

평가 지표 : 총소요비용/명수/사업으로 인해 변화된 결과

3. 평가 수준에 따른 프로그램 평가(PROCEED 평가)

① 과정평가 : 사업 수행이 정책이나 기준에 적합한지 평가하는 것으로, 프로그램이 계획대로 시행되었는지를 평가한다.

평가지표 및 항목 : 지도자의 훈련수준, 사용된 자료의 질, 제반교육과정과의 적절성 및 난이성, 과정의 수, 각 과정의 시간적 길이, 참석자수, 대상자의 참석율

② 영향평가 : 사업의 즉각적 효과나 지식, 태도, 행위 측면의 영향

- 단기적 영향 : 대상자의 지식, 태도, 신념, 가치관, 기술, 행동, 실천양상에 일어나는 변화를 측정

- 장기적 영향 : 건강문제를 예방하기 위한 조직체가 채택한 정책이나 프로그램, 자원 또는 정부의 정책이나 계획, 재정지원, 입법 상태

③ 결과평가 : 평가의 관심을 건강의 최종산물에 두고 평가하는 것으로, 프로그램의 시행결과 얻어진 건강이나 사회적 요인의 기술 지표 및 도구 개선점을 측정

공정한 & 편향없는 AI를 위한 Fairlearn 및 애저 MLOps 도구 활용

개인의 삶에 영향을 미치는 중요한 결정에 많은 데이터 활용이 이루어지면서 보다 안전하고, 윤리적이면서 책임감있는 사용을 보장하는 AI(인공지능)에 대한 중요성이 대두되고 있습니다. 선한 목적으로 알고리즘을 개발하고 데이터를 활용하더라도 의도하지 않게 성별, 문화적, 민족적 편향성을 AI가 보여준다면 결코 공정하다고 할 수 없을 것입니다.

애저 머신러닝 - 책임있는 ML

마이크로소프트는 책임감있고 사람들의 신뢰를 보장하는 방식으로 AI 시스템이 개발되도록 AETHER 위원회를 비롯한 작업 그룹들이 주도하는 노력과 지원을 계속하고 있습니다 (참고). 그 중, 지난 빌드 2020에서는 애저 머신러닝 서비스를 통해 책임있는 ML을 어떻게 구현하는지에 대한 발표가 있었습니다. 데이터 과학자 및 개발자 분들께서 머신러닝 모델을 보다 잘 이해하고, 데이터를 보호하며 머신러닝 전반 과정을 제어하는 과정을 통해 신뢰할 수 있는 AI를 구축가능하다는 것입니다.

AI에서의 공정성 (Fairness)

지난 2020년 7월, 마이크로소프트 Data&AI 클라우드 솔루션 아키텍트이신 박소은님이 Azure AI의 새로운 기능에 대해 발표하시면서 AI에서의 공정성 (Fairness)을 말씀해주셨습니다. AI 시스템이 공정하지 않게 동작할 때 발생하는 여러 피해 중, 하나는 서비스 품질 (Quality of Service)에 대한 피해가 있습니다. 제품이 특정 그룹에서는 잘 동작하지만 다른 그룹에서는 다른 품질을 보여준다는 것으로, 어떤 음성인식 시스템에서, 남성의 목소리는 잘 인식하는 반면, 여성의 소리를 잘 인식하지 못한다면 서비스 품질 피해가 있다고 기술 지표 및 도구 할 수 있습니다. 두 번째로는 할당 (Allocation)에 대한 피해로, 예를 들어 대출 심사나 채용 과정에서 관련없는 특징이 고려되어 판단이 되어 의도하지 않은 할당 피해가 있다는 것입니다. 이러한 문제들을 해결하기 위해서는 AI에 접근할 때 윤리적인 마음가짐과 함께 올바른 규정을 준수하는 부분도 중요하겠지만, 어떻게 모델을 분석하고, 특정 그룹의 사람들에게 부정적인 결과를 초래할 수 있는 이러한 행동들이 AI 시스템에 반영되었는지를 잘 확인하는 방법 또한 중요할 것입니다.

도구를 보다 잘 활용하여 사용하는 데이터 및 알고리즘이 공정한지를 어떻게 발견하고 대처할 수 있을까요? 이번 포스트에서는 머신러닝 시스템을 만들 때, 파이썬 라이브러리인 Fairlearn 오픈소스와 애저 머신러닝 서비스를 활용하여 보다 공정하고 편향없는 AI를 어떻게 실현할 수 있는지에 대해 알아보겠습니다.

Fairlearn 오픈소스를 사용한 머신러닝 모델 평가

Fairlearn은 머신러닝 모델에서 발생할 수 있는 비공정성을 평가하는 기능을 제공하면서 동시에 비공정성을 완화 가능한 알고리즘들을 제공하여 비공정성을 개선하고자 사용하는 오픈소스 툴킷입니다. 파이썬으로 작성된 오픈소스로 깃허브에 공개되어 있으며, pip 명령어를 사용해 로컬/클라우드 환경에 직접 설치하여 사용하실 수도 있습니다. 본 포스트에서는 비공정성 평가에 대한 부분을 살펴보겠습니다.

pip install fairlearn

일반적으로 머신러닝을 사용해 모델을 정의 후 트레이닝 및 예측하는 과정을 거치며, 머신러닝 모델을 평가하기 위해서는 분류(Classification), 회귀 (Regression), 클러스터링과 같은 모델 유형에 따라 정확도 (Accuracy), 정밀도 (Precision), 재현율 (Recall), AUC, MAE, RMSE 등과 같은 여러 지표 (Metric)들을 사용합니다 (마이크로소프트 문서에서 자세한 내용을 영문으로 확인하실 수 있습니다). Fairlearn에서는 공정성을 평가하기 위해 이와 같은 지표들을 기반으로 1) 민감한 피처를 선택하고 2) 성능과 예측 차이에 따른 평가 결과를 확인하는 라이브러리 함수를 제공합니다. 또한, 대시보드를 Jupyter 노트북에서 확인하여 만든 머신러닝 모델이 공정한지를 보다 쉽게 확인도 가능합니다. 참고로, 애저에서는 뒤에서 설명하는 애저 머신러닝 서비스에서 Jupyter 노트북을 쉽게 실행할 수 있습니다.

Fairlearn - 모델 평가

그렇다면, 이제부터는 실제 데이터셋으로 머신러닝 모델을 트레이닝할 때 Fairlearn을 어떻게 사용하는지 살펴보겠습니다. OpenML에 업로드된 성인 인구조사 데이터셋을 활용해 보겠습니다. Scikit-learn에서 기술 지표 및 도구 제공하는 fetch_openml() 함수를 통해 데이터셋 숫자인 1590만 알면 아래 코드 예제와 같이 쉽게 데이터셋을 불러올 수 있습니다. 연간 소득이 5만 달러를 넘는지에 대한 여부를 판단하는 예측 모델을 만들고자 합니다. 여기서 한 가지, 머신러닝 모델 트레이닝을 할 때 성별, 인종과 같은 민감한 피처를 제외하는 것이 좋습니다. 앞에서 언급하였던 할당 피해를 방지할 수 있을 것입니다.

import numpy as np
import pandas as pd
from sklearn . datasets import fetch_openml
# 인구조사 데이터셋 불러오기
data = fetch_openml ( data_id = 1590 , as_frame = True )
# 성별 및 인종과 같이 민감한 feature를 모델 트레이닝에서 제외
X_raw = data . data
y_true = ( data . target == ">50K" ) * 1
A = X_raw "race" , "sex"
X_raw = pd . get_dummies ( X_raw . drop ( labels = [ 'sex' , 'race' ], axis = 1 ))

그리고 머신러닝 모델을 트레이닝할 때, 일반적으로 평가를 위해 데이터를 트레이닝 셋과 테스트 셋으로 분리합니다. 예제에서는 30%를 테스트 셋으로 배정하였으며, 인덱스를 정리하는 짧은 코드를 추가하였습니다.

from sklearn . model_selection import train_test_split
# 데이터를 "train" (트레이닝) 및 "test" (테스트) 셋으로 분리
( X_train , X_test , y_train , y_test , A_train , A_test ) = train_test_split (
X_raw , y_true , A , test_size = 0.3 , random_state = 12345 , stratify = y_true
)
# Ensure indices are aligned between X, y and A,
# after all the slicing and splitting of DataFrames
# and Series
X_train = X_train . reset_index ( drop = True )
X_test = X_test . reset_index ( drop = True )
y_train = y_train . reset_index ( drop = True )
y_test = y_test . reset_index ( drop = True )
A_train = A_train . reset_index ( drop = True )
A_test = A_test . reset_index ( drop = True )

데이터 준비가 이제 다 끝났으니, 모델 트레이닝 및 예측이 가능하겠죠? 예제에서는 Scikit-learn에서 제공하는 분류를 위한 의사결정트리인 DecisionTreeClassifier를 사용해 보겠습니다. 구체적인 min_samples_leaf 및 max_depth 값 등을 튜닝하는 것도 중요하겠지만, 본 포스트에서는 AI 공정성을 위한 평가를 어떻게 하는지에 집중하도록 하겠습니다. 테스트셋으로 예측한 결과들을 정확도, 정밀도, 재현율 등 지표를 통해 확인할 수 있으나, 해당 지표 자체만으로 머신러닝 모델이 공정성을 얼마나 확보하였는지를 이해하기에는 쉽지 않은 것 같습니다.

from sklearn . tree import DecisionTreeClassifier
from sklearn . metrics import accuracy_score , precision_score , recall_score , f1_score , roc_auc_score
classifier = DecisionTreeClassifier ( min_samples_leaf = 10 , max_depth = 4 )
classifier . fit ( X_train , y_train )
y_pred_tr = classifier . predict ( X_test )
print ( 'Accuracy: %.3f' % accuracy_score ( y_test , y_pred_tr ))
print ( 'Precision: %.3f' % precision_score ( y_test , y_pred_tr ))
print ( 'Recall: %.3f' % recall_score ( y_test , y_pred_tr ))
print ( 'F1 score: %.3f' % f1_score ( y_test , y_pred_tr ))
print ( 'AUC: %.3f' % roc_auc_score ( y_test , y_pred_tr ))

Jupyter 노트북에서 Fairlearn 라이브러리에서 제공하는 FairlearnDashboard() 함수를 사용하면 대시보드를 불러올 수 있습니다. 함수를 호출할 때, 민감한 피처에 대한 데이터셋과 예측 모델을 지정하면 민감한 피처와 측정하고자 하는 성능 항목을 선택하여 성능과 예측에 대한 차이 (disparity)를 확인하는 대시보드를 제공합니다. 각 민감한 피처 값 유형에 따라 살펴보고자 하는 지표가 과소/과대 예측이 되었는지에 대한 성능 차이 및 데이터 선택에 따른 공정성이 있는지에 대한 예측 차이를 확인할 수 있습니다.

# View this model in Fairlearn's fairness dashboard, and see the disparities which appear:
from fairlearn . widget import FairlearnDashboard
FairlearnDashboard ( sensitive_features = A_test ,
sensitive_feature_names = [ 'Race' , 'Sex' ],
y_true = y_test ,
y_pred = < "model" : y_pred_tr >)

MLOps 실현을 위한 애저 머신러닝 서비스에 모델 & 실험 업로드

방대한 양의 데이터에서부터 머신러닝 모델이 여러 트레이닝 및 예측, 튜닝 과정을 걸쳐 완성되어도, 실제 서비스화를 위해서는 성능 최적화와 함께 트레이닝 데이터 및 모델에 대한 모니터링 및 관리 등 많은 과정이 있습니다. 애저 머신러닝 서비스는 사람, 프로세스, 제품이 함께 결합하여 최종 고객에게 가치를 지속적으로 전달한다는 DevOps를 넘어서, 이러한 전반적인 머신러닝을 고려한 MLOps 실천 사례 경험을 반영한 애저 서비스입니다. 복잡한 데이터셋 변화와 발전하는 머신러닝 모델에 대한 추적 뿐만 아니라, 보다 빠르게 머신러닝 모델을 빌드하고 학습, 배포할 수 있는 다양한 생산적인 환경을 개발자와 데이터 과학자에게 제공하고 있습니다. (MLOps에 대한 자세한 내용은 마이크로소프트에서 AI 플랫폼을 담당하시는 한석진님이 공유주신 MLOps 101 영상을 통해 확인하실 수 있습니다.)

  • 실험: 머신러닝을 하는 과정은 1) 데이터셋 준비 2) 모델 트레이닝을 위한 피처 선택 3) 알고리즘 선택 및 파라미터 지정 4) 트레이닝 수행이라는 과정을 거쳐 하나의 머신러닝 모델이 만들어집니다. 이를 애저 머신러닝 서비스에서는 실험이라는 단위로 추상화를 하였습니다. 예를 들어 위 예제에서 테스트셋 비율을 30%로, DecisionTreeClassifier를 사용하여 min_samples_leaf 값은 10으로, max_depth 값은 4로 지정하였는데, 이 전체를 실행했던 과정을 하나의 실험으로 보는 것입니다. 같은 실험을 반복해서 실행하기도 하며, 데이터셋을 바꿔서 다시 실행하거나, 기술 지표 및 도구 기술 지표 및 도구 max_depth 값을 3으로 바꾸어서 트레이닝을 한다면 또 다른 실험 단위를 실행할 수도 있겠죠.
  • 모델: 실험 과정을 거쳐, 반복 & 재사용이 가능한 모델이라는 단위도 생각해볼 수 있습니다. 모델은 1) 어떤 머신러닝 알고리즘을 선택하는지 2) 어떤 파라미터 값을 사용하는지에 대한 내용을 가지는 추상화 단위입니다. 이렇게 모델을 실험과 따로 분리하여 살펴봄으로써, 동일한 모델이 서로 다른 데이터셋을 사용하여 실험할 때 어떤 결과 차이를 보이는지 확인할 수가 있을 것입니다.

무엇보다 애저 머신러닝 서비스는 책임있는 ML을 위한 머신러닝 모델 이해, 데이터 보호, 전체 과정 제어를 위한 쉬운 도구 연계를 염두한 서비스라는 특징을 가지고 있습니다. 위에서 살펴본 Fairlearn의 경우, AI 공정성을 보장하기 위한 머신러닝 모델 이해와 관련이 있는데요, 애저 머신러닝 서비스에서는 Fairlearn 오픈소스와 연동이 가능하여 애저 머신러닝 서비스 UI에서 모델과 실험 단위로 Fairlearn 대시보드를 살펴볼 수 있습니다. 이제부터는 애저 머신러닝 서비스에서 실험과 모델이 어떻게 관리되는지 간단히 살펴보고, 위에서 만든 머신러닝 모델을 애저 머신러닝 서비스에 모델 및 실험 단위로 업로드하여 책임있는 ML을 위해 MLOps를 어떻게 활용할 수 있는지를 살펴보고자 합니다.

업로드를 위해서는 애저 머신러닝 서비스라는 리소스를 만들어야겠죠? 애저 포털에서 애저 머신러닝 서비스를 만드는 방법은 마이크로소프트 Learn에 설명된 머신러닝 소개 및 작업 영역 내용을 참고하실 수 있습니다. 애저 머신러닝 서비스를 쉽게 연결하려면 azureml-sdk 및 관련 라이브러리가 필요합니다. 애저 머신러닝 노트북에 대한 한 예제 파일에 나와있는 아래 내용을 통해 의존성있는 라이브러리 목록을 확인할 수 있습니다.

# https://github.com/Azure/MachineLearningNotebooks/blob/master/contrib/fairness/upload-fairness-dashboard.yml
name : upload-fairness-dashboard
dependencies :
- pip :
- azureml-sdk
- azureml-contrib-fairness
- fairlearn==0.4.6
- joblib

애저 머신러닝 서비스 접속 구성을 담고 있는 config.json 파일이 필요합니다. 해당 파일은 애저 머신러닝 서비스 리소스를 애저에서 만든 다음 받으셔서 로컬 및 다른 개발 환경에서 연결하실 수도 있으며, 아니면 애저 머신러닝 스튜디오를 실행한 후, Notebooks 탭에서 Jupyter 노트북을 작성하면 추가한 컴퓨팅 자원에서 바로 config.json 파일을 불러오실 수도 있습니다.

Azure Machine Learning Service - config.json 다운로드

# 애저 머신 러닝 서비스 연결에 필요한 정보를 가져옴
from azureml . core import Workspace , Experiment , Model
import joblib
import os
# config.json 파일에서 설정을 가져옴
# 참고: https://docs.microsoft.com/ko-kr/azure/machine-learning/how-to-configure-environment#workspace
ws = Workspace . from_config ()
ws . get_details ()

그 다음으로, 애저 머신러닝 서비스에 모델을 등록합니다. 이때, 등록할 모델은 이전에 Scikit-learn에서 제공하는 분류를 위한 의사결정트리인 DecisionTreeClassifier를 사용하였고, 구체적인 min_samples_leaf 및 max_depth 값을 지정하였던, 개체 인스턴스에 대응합니다. 모델을 등록하면 모델 ID 값을 반환하는데, 이 값은 바로 다음에 실험을 추가할 때 사용하므로 변수에 저장해두고자 합니다.

os . makedirs ( 'models' , exist_ok = True )
# 사용한 모델 등록이 필요함 (여러 번 할 필요가 없으며, 이미 모델을 등록하였다면 기존 모델을 가져오도록 변경해야 함)
# Function to register models into Azure Machine Learning
def register_model ( name , model ):
print ( "Registering " , name )
model_path = "models/.pkl" . format ( name )
joblib . dump ( value = model , filename = model_path )
registered_model = Model . register ( model_path = model_path ,
model_name = name ,
workspace = ws )
print ( "Registered " , registered_model . id )
return registered_model . id
# Call the register_model function
dt_classifier_id = register_model ( "fairness_DecisionTreeClassifier" , classifier )

애저 머신러닝 서비스에서 Fairlearn에서 실행했던 결과를 포함해 실험으로 관리할 수 있습니다. 이렇게 관리를 하려면 Fairlearn으로 실행한 결과를 계산하여 저장해 두고 있어야겠죠. fairlearn.metrics 패키지에 있는 _create_group_metric_set() 함수를 통해 미리 계산한 결과를 저장합니다.

# 공정성에 대한 메트릭을 미리 계산
# Create a dictionary of model(s) you want to assess for fairness
sf =
ys_pred =
from fairlearn . metrics . _group_metric_set import _create_group_metric_set
dash_dict = _create_group_metric_set ( y_true = y_test ,
predictions = ys_pred ,
sensitive_features = sf ,
prediction_type = 'binary_classification' )

다음으로 애저 머신러닝 서비스에 실험 단위로 업로드합니다. azureml.core.Experiment 클래스 인스턴스를 생성한 후, 업로드를 진행합니다. 이 때, 바로 이전에 Fairlearn에서 계산된 결과를 Experiment 인스턴스에 같이 전달합니다.

# 미리 계산된 공정성 메트릭을 애저 머신 러닝 서비스에 업로드
from azureml . contrib . fairness import upload_dashboard_dictionary , download_dashboard_by_upload_id
exp = Experiment ( ws , "Test_Fairness_Census_Demo-testset" )
print ( exp )
run = exp . start_logging ()
# Upload the dashboard to Azure Machine Learning
try :
dashboard_title = "Fairness insights of Decision Tree Classifier"
# Set validate_model_ids parameter of upload_dashboard_dictionary to False if you have not registered your model(s)
upload_id = upload_dashboard_dictionary ( run ,
dash_dict ,
dashboard_name = dashboard_title )
print ( " \n Uploaded to id: \n " . format ( upload_id ))
# To test the dashboard, you can download it back and ensure it contains the right information
downloaded_dict = download_dashboard_by_upload_id ( run , upload_id )
finally :
run . complete ()
# 애저 머신 러닝 서비스 내에서 확인 가능

이제, 애저 머신러닝 서비스에서 어떻게 보이는지 확인해보면 되겠죠? 애저 머신러닝 스튜디오에서 실험 -> 목록 선택 -> 실행 단위를 선택한 다음, 공정성 탭에 들어가면 확인하실 수 있습니다. 코드 예제와 함께 단계별로 살펴보았는데요, 애저 머신러닝 서비스를 사용한다면 공정성에 대한 부분을 개발자는 Fairlearn으로 관련 지표를 계산하여 업로드하며, 관리자 / 머신러닝 종사자는 애저 머신러닝 스튜디오 UI에서 실험 및 모델 단위로 공정성에 대한 지표를 UI를 통해 쉽게 확인할 수가 있습니다. 또한, 모니터링이나 전체 머신러닝 프로세스를 코드로 잘 관리한다면, 책임있는 ML을 MLOps 실천 사례에 따라 실현할 수 있으며, 구성원 모두 및 외부에도 보다 신뢰있는 AI라고 할 수 있을 것입니다.

애저 머신러닝 서비스 - 스튜디오에서 공정성 확인

이와 같이, 머신러닝 솔루션이 공정하고 예측의 가치를 이해하고 설명하기 쉽도록 하려면 개발자와 데이터 과학자가 AI 시스템의 공정성을 평가하고 관찰된 불공정 문제를 완화하는 데 사용할 수 있는 프로세스를 도구와 함께 구축하는 것이 중요합니다. 2021년 1월 개최된 CES 2021에서 마이크로소프트 최고법률책임자인 브래드 스미스는 "기술에는 양심이 없지만 사람에게는 있다"며 "기술이 어떤 방식으로 쓰이든 그것은 사람의 책임"이라고 이야기하였습니다. 이번 포스트에서 소개된 머신러닝 도구 및 실천사례가 잘 활용되어, 보다 공정한, 그리고 편향없는 AI와 함께 모두 지낼 수 있기를 희망합니다.

이 포스트에 쓰인 예제 Jupyter 노트북 코드를 여기에서 확인해 보세요!

그리고 영문으로 되어 있지만, Fairlearn에 대해 자세하게 설명한 많은 내용이 있으며, 해당 내용을 참고하여 본 포스트를 작성하였습니다:


0 개 댓글

답장을 남겨주세요