Tableau’s relationships are pretty cool -번역

Tableau 관계는 매우 멋지다

조인과 달리 관계는 데이터의 기본 세분성을 유지하므로 LOD 식의 필요성이 줄어 듭니다.

지난 여름 Tableau는 데이터를 결합하는 새로운 방법을 도입했습니다.그것은이라고관계.데이터를 결합하는 오래된 방법조인여전히 사용할 수 있으며 우리 중 많은 사람들이 한동안 익숙한 조인을 고수 할 것이라고 생각합니다.그러나 관계는 그들을 추천 할 것이 많고이 포스트는 그들의 인과 아웃을 보여줄 것입니다.아래 세 가지 표를 고려하십시오.

작성자의 이미지.

사용조인Tableau는 이러한 테이블을 하나로 결합합니다.플랫다음과 같은 파일 :

Image for post

테이블을 하나의 플랫 파일로 결합하면 일부 데이터의 세분성이 변경됩니다.작성자의 이미지.

dif로 테이블 결합에프정확한 세분성 수준은 더 많은 집계 수준의 세분성을 가진 테이블 (이 경우 director 및 ratings 테이블)의 관찰을 복제합니다.이 테이블에서 측정 값을 올바르게 요약하려면 다음을 사용해야합니다.LOD 표현식어려울 수 있습니다.

관계각 테이블의 기본 수준을 유지합니다.사용자는 단순히 테이블이 관련되는 방식을 정의하고 필요에 따라 조인이 수행됩니다.

Image for post

관계는 데이터의 기본 세분성을 유지합니다.작성자의 이미지.

이러한 테이블의 측정 값을 포함하는 요약을 만들 때 각 측정 값은 기본 세분성 수준을 사용하여 요약됩니다.

Image for post

작성자의 이미지.

두 감독의 평균 연령은 60 세입니다. James Cameron은 매주 5 번의 박스 오피스 출품작을 보유하고 있으며 Rian Johnson은 단 2 세입니다.나이는 기본 단위가 director 인 directors 테이블에서 가져 오므로 평균은 director에서 계산됩니다.이것은 Tableau를 처음 접하는 사람에게는 당연한 일이지만 LOD 식을 사용하여 중복을 수정하고 데이터를 하나의 결합 된 플랫 파일로 생각하는 데 익숙한 사람들에게는 이것은 다소 혁신적입니다.

아래의 산점도에서 그 아이디어를 다시 설명하겠습니다.영화로 박스 오피스의 합계에 대한 감독의 나이를 계획하고 있습니다.Tableau는 흥행 테이블에서 각 영화의 흥행 수익을 합산하지만 감독 테이블에서 감독의 나이를 취하고 각 감독이 해당 테이블에 한 번만 있기 때문에 나이가 중복되지 않습니다.

Image for post

작성자의 이미지.

또한 관계에서 오른쪽, 왼쪽, 전체 또는 내부 조인을 사용할지 여부에 대해 걱정할 필요가 없습니다.뷰에 사용 된 테이블에 차원이 있으면 해당 차원이 비주얼리 제이션에 포함됩니다.한 테이블에는 있지만 다른 테이블에는없는 차원 측정 값에 대해 생성 된 Null이 없습니다.

작성자의 이미지.

관계에 따른 또 다른 변화는기록 수들.이제 각 테이블과 관련된 (count) 필드가 있습니다.이는 각 테이블이 세분화 수준을 유지하므로 자체 레코드 수가 있기 때문에 의미가 있습니다.

관계는 완벽하지 않습니다.현재 그들은계산 “결합”을 지원하지 않음즉, 계산을 기반으로 관계를 정의 할 수 없습니다.즉, 필드 분할 또는 두 필드 연결과 같이 관계를 설정하는 데 필요한 모든 작업은 소스에 연결하기 전에 수행해야합니다.Tableau가 곧 관계에 대한 계산을 구축하기를 바랍니다.

데이터 소스 필터가 관련 테이블에 걸쳐 확장된다는 점도 주목할 가치가 있습니다.테이블이 별도로 유지된다고 생각할 수 있지만 그렇지 않습니다. 한 테이블의 값에 대한 필터가 관련 테이블의 일치하는 값에 적용됩니다.예를 들어 50 세 감독 만 포함하도록 필터를 추가하면 감독 테이블에서 James Cameron뿐만 아니라 영화 테이블에서 그의 모든 영화도 제외됩니다.(또한 null을 포함하도록 지정하지 않는 한 Jordan Peele의 Us도 제외됩니다.)

Tableau는 관계를 잘 설명합니다.여기.관계의 논리에 익숙해지는 데는 다소 시간이 걸리지 만 시도해 볼 가치가 있습니다.

Image for post

작성자의 이미지.

Responsible AI at Facebook -번역

사과|GOOGLE|스포티 파이|기타

Facebook의 책임있는 AI

To select chapters, visit the Youtube video here.

편집자 주 :이 에피소드는 데이터 과학 및 기계 학습의 새로운 문제에 대한 팟 캐스트 시리즈의 일부입니다.,Jeremie Harris가 주최합니다.팟 캐스트 호스팅 외에도 Jeremie는 데이터 과학 멘토링 스타트 업을 운영하는 데 도움을줍니다.SharpestMinds.아래 팟 캐스트를들을 수 있습니다.

Listen on Apple, Google, Spotify

Facebook은 매일 수십억 명의 삶에 영향을 미치는 추천 시스템과 예측 모델을 정기적으로 배포합니다.이러한 종류의 도달에는 큰 책임이 따릅니다. 무엇보다도 윤리적이고 공정하며 잘 특성화 된 AI 도구를 개발할 책임이 있습니다.

이것은이자형asy 작업.인간은 “공정성”과 “윤리”가 무엇을 의미하는지에 대해 수천 년을 보냈지 만 합의에 가까워지지 않았습니다.이것이 바로 책임있는 AI 커뮤니티가 탐색하고 권장 할 정책을 결정할 때 가능한 한 많은 이질적인 관점을 포함해야하는 이유입니다. 이는 Facebook의 책임있는 AI 팀이 자체적으로 적용한 관행입니다.

이 팟 캐스트 에피소드에서는 Facebook의 Responsible AI의 저명한 기술 책임자 인 Joaquin Quiñonero-Candela와 합류했습니다.Joaquin은 수년 동안 AI 윤리 및 공정성 운동의 최전선에 있었고 Facebook의 책임있는 AI 팀 구성을 감독했습니다.결과적으로 그는 대규모 AI 윤리 결정을 내리고 그 효과를 확인한 실무 경험이있는 비교적 소수의 사람 중 한 명입니다.

우리의 대화는 공정성의 정의에 대한 철학적 질문에서 특정 윤리적 AI 프레임 워크를 구현할 때 발생하는 실제적인 문제에 이르기까지 많은 근거를 다루었습니다.다음은 제가 가장 좋아하는 테이크 홈입니다.

  • Joaquin은 AI의 맥락에서 공정성에 대해 생각하는 세 가지 다른 방식을 강조하며, 이들 모두는 서로 다른 그룹 (성별, 인종 등)에서 주어진 알고리즘의 성능을 비교하는 데 어느 정도 관심이 있습니다.첫 번째는 모든 그룹에 대해 최소 수준의 성과를 달성하는 경우 시스템을 공정하게 고려하는 것입니다.여기에는 “종족을 5 % 이상 잘못 분류해서는 안됩니다”와 같은 표준 설정이 포함됩니다.
    두 번째 접근 방식은 더 나아가서 동일성을 요구합니다. 알고리즘 성능이 그룹간에 너무 많이 달라지지 않아야한다는 생각입니다.이 표준을 적용하면 “종족이 다른 어떤 민족보다 평균적으로 3 % 이상 더 자주 잘못 분류되지 않아야합니다.”와 같은 요구 사항이 발생합니다.
    마지막 전략은 그룹 간의 결과 차이를 최소화하는 것입니다.여기서 아이디어는 “모든 그룹이 행동 X를 동일하게 수행 할 가능성이 있으므로 모든 그룹이 동일한 확률로 X를 수행 할 것이라고 예측하지 못하는 알고리즘은 불공평해야합니다.”라는 사전을 적용하는 것입니다.
  • 한 가지 핵심 질문은 주어진 상황에 적용되는 공정성 표준을 누가 결정할 수 있는가입니다.호아킨은 이것을 공정성 문제의 핵심으로 봅니다. 우리는 모든 심오한 도덕적 논쟁을 조만간 해결하지 않을 것이므로, 지금 도덕적으로 명료 한 척하는 대신 특정 결정의 공정성을 허용하는 프로세스를 만드는 데 집중해야합니다.사례별로 결정됩니다.그런 이유로 그의 팀의 진언은 “공정성은 과정”이라는 것입니다 (그는 말 그대로 그것을 증명할 티셔츠를 얻었습니다!).
  • 공정성 프로세스가 무엇을 포함하든 데이터 과학자가 모든 것을 스스로 처리 할 것으로 기 대해서는 안됩니다.데이터 과학자는 윤리와 철학의 마스터가 될 시간이 없으므로 기술 팀에 도달하기 전에 이러한 도덕적 질문을 추상화하는 구조를 설정해야합니다.이를 위해 Facebook의 Responsible AI 이니셔티브는 “허브 앤 스포크”모델에 따라 작동합니다. 핵심 팀은 개방적이고 투명한 방식으로 윤리 표준을 설정하고 해당 표준을 전문 팀에 의해 수학으로 변환합니다.데이터 과학자가 구현할 수있는 정의.
  • Joaquin은 단일 조직의 인센티브 나 관점을 반영하는 것이 아니라 책임감있는 AI 개발에 대한보다 보편적 인 표준을 확립하기 위해 대기업 간의 협업 및 조정의 중요성이 커지고 있다고 설명합니다.그런 정신으로 그는 이제 AI 윤리 모범 사례 및 안전한 AI 개발과 관련된 질문을 조정하기 위해 Facebook, Google, Microsoft 및 OpenAI와 같은 주요 플레이어를 모으는 우산 조직인 Partnership on AI와 협력하고 있습니다.

당신은 할 수 있습니다여기 트위터에서 호아킨을 팔로우하세요, 또는여기 트위터에서 나를 따르라

Links referenced during the podcast:

Chapters:

  • 0:00 Intro
  • 1:32 Joaquin’s background
  • 8:41 Implementing processes
  • 15:12 No single optimization function
  • 17:51 Definitions of fairness
  • 28:03 How fairness is managed at Facebook and Twitter
  • 32:04 Algorithmic discrimination
  • 37:11 Partnership on AI
  • 44:17 Wrap-up

Please find below the transcript:

Jeremie (00:00) :

안녕 모두들.여기 제레미.팟 캐스트에 다시 오신 것을 환영합니다.오늘의 에피소드가 정말 기대됩니다. Facebook에서 책임감있는 AI가 수행되는 방식에 대해 이야기 할 것이기 때문입니다.이제 Facebook은 매일 말 그대로 수십억 명의 삶에 영향을 미치는 추천 시스템과 예측 모델을 일상적으로 배포합니다.그리고 이러한 종류의 도달 범위에는 무엇보다도 윤리적이고 공정하며 특성이 뛰어난 AI 도구를 개발해야하는 큰 책임이 따릅니다.

Jeremie (00:22) :

이것은 정말 쉬운 일이 아닙니다.인간은 공정성과 윤리가 의미하는 바가 무엇인지에 대해 수천 년을 보냈으며 이러한 문제에 대한 합의에 가까운 것은 없습니다.이것이 바로 Responsible AI 커뮤니티가 탐색하고 권장 할 정책을 결정할 때 가능한 한 많은 이질적인 관점을 포함해야하는 이유입니다.이것이 바로 Facebook의 책임있는 AI 팀이 적용한 관행입니다.

Jeremie (00:44) :

이제이 팟 캐스트 에피소드에서는 Facebook에서 Responsible AI의 저명한 기술 책임자 인 Joaquin Quinoñero-Candela와 합류했습니다.Joaquin은 수년간 AI 윤리 및 AI 공정성 운동의 최전선에있었습니다.그리고 그는 기본적으로 처음부터 Facebook의 전체 책임감있는 AI 팀 구성을 감독했습니다.따라서 그는 대규모 AI 윤리 결정을 내리고 그 효과가 나타나는 것을 직접 확인한 실무 경험이있는 비교적 소수의 사람 중 한 명입니다.

Jeremie (01:09) :

이제 우리의 대화는 공정성 자체의 정의에 대한 철학적 질문에서 특정 AI 윤리 프레임 워크를 구현할 때 발생하는 실제적인 문제에 이르기까지 많은 근거를 다룰 것입니다.이것은 대단한 것입니다.이 에피소드를 여러분과 공유 할 수있게되어 너무 기쁩니다. 여러분도 즐겨 주시기 바랍니다.호아킨, 팟 캐스트에 함께 해주셔서 정말 감사합니다.

호아킨 (01:26) :

고마워, Jeremie.저를 가져 주셔서 감사합니다.정말 기쁘고 여러분의 팟 캐스트가 정말 마음에 듭니다.

Jeremie (01:32) :

음, 정말 감사합니다.당신이 여기에 오게되어서 기쁩니다.이 대화가 정말 기대됩니다.토론 할 수있는 내용이 너무 많지만 상황에 맞는 부분이있어 문제를 해결하는 데 유용 할 것 같습니다.그리고 그것은 당신의 배경, 당신이 어떻게이 공간에 들어 갔는지, 누군가가 ML과 학문적 여정 밖에서 어떻게 들어 와서 결국 당신이있는 위치에 도달했는지에 대한 짧은 대화입니다. 그리고 그것은 책임있는 AI 이니셔티브를 이끌고 있습니다.페이스 북.거기 어떻게 갔어요?

호아킨 (01:56) :

내 여정에 대해 얘기하면 오래 갈 수 있기 때문에 원할 때마다 나를 방해 할 수있는 거래를해야합니다.저는 매우 높은 수준에서 2004 년에 머신 러닝 박사 학위를 마쳤다고 생각합니다. 당시에는 제가 속한 커뮤니티에서 AI라는 단어를 사용하는 사람이 거의 없었습니다. NeurIPS 커뮤니티는 대부분 ML 커뮤니티였습니다.나는 학업에 약간의 시간을 보냈습니다.저는 독일 막스 플랑크 연구소에서 박사후 연구원이었습니다.첫 번째 전환은 2007 년 1 월 영국 케임브리지에서 연구 과학자로 Microsoft Research에 합류했습니다.

호아킨 (02:43) :

그래서 제 경력에서 매우 근본적인 일이있었습니다. 기계 학습을 사용하는 제품 팀을 만났다는 것입니다.특히 Microsoft의 검색 엔진이 출시되기 전에 Bing 조직이 될 팀과 대화를 시작했습니다.그리고 우리는 사람들을위한 광고의 관련성을 높이기 위해 ML을 적용하기 시작했습니다.특히, 우리는 누군가가 광고를 보게된다면 광고를 클릭 할 것인지 예측하는 모델을 구축하고있었습니다.그 작업은 ML이 과학 논문에서 한 것이 아니라 실제로 프로덕션에 넣을 수 있다는 생각에 매료되었습니다.

호아킨 (03:24) :

그래서 2009 년에 Bing 조직은 저에게 “이봐 요, Microsoft Research의 안락함, 그처럼 편안한 연구 환경에서 벗어나는 것이 어떻습니까? 그리고 엔지니어링 관리자가되어 Bing 내에서 팀을 이끌지 않겠습니까?”그래서 저는 그렇게했습니다.엔지니어링 리더가되는 것에 대해 전혀 몰랐기 때문에 제 인생에서 가장 스트레스가 많고 극적인 전환 중 하나 였을 것입니다.로드맵, 인원수 계획, 예산 책정, 통화 중, 주요 생산 구성 요소를 담당하는 일에 익숙하지 않았습니다.그래서 꽤 스트레스가 많았습니다.하지만 동시에 저에게 반대편의 시각을 주었기 때문에 훌륭했습니다.

호아킨 (04:04) :

그리고 제 경력 전체에서 되풀이되어 지금도 계속되는 한 가지 주제는 기술 이전에 대한 아이디어입니다.화이트 보드, 수학, 아이디어, 연구, 실험에서 유지 관리 및 실행이 필요한 프로덕션 시스템으로 이어지는 깔때기입니다.

호아킨 (04:22) :

그래서이 전환은 저에게 연구의 반대편에있는 다른 세계에 대한 1 인칭 시각을 제공했습니다. 때로는 연구원으로서 여러분이 들어가서 이렇게 말할 수있는 다른 세계입니다.“이봐 요.제가 방금 만든 멋진 모델입니다.”그리고 사람들은“이럴 시간이 없습니다.바빠요.”그래서 갑자기 저는 반대편에있었습니다.훌륭한 경험이었고 결국 경매 최적화 팀을 구축하는 데 도움이되었습니다.그래서 메커니즘 설계와 경제, 경매에 대해 조금 알게되었습니다.

호아킨 (04:57) :

그리고 2012 년 5 월에 Facebook에 왔습니다. 광고 조직에 합류했습니다.저는 광고를위한 기계 학습 팀을 구축하기 시작했습니다.그리고 제 커리어에서 두 번째로 중요한 순간이 일어났다 고 생각합니다. 즉, 모든 사람에게 말하고 싶은 말은 마법사가 확장하지 않는 것이 저를 정말 세게 때렸다는 것입니다.

호아킨 (05:16) :

그래서 우리가 가진 도전은 페이스 북에 뛰어난 기계 학습 연구원이 몇 명 있었지만 해결해야하는 문제의 수는 계속 증가했습니다.그리고 우리는 빠르게 움직이는 우리 자신의 능력에 거의 문을 두었습니다.사람들은 자신의 상자에 모델을 만들고 프로덕션으로 배송하기위한 자체 프로세스를 갖게되었고 모든 것이 느리다고 느꼈습니다.그리고 집착은 어떻게 우리가 연구를 생산으로 가속화 할 수 있을까요?공장을 어떻게 지을 수 있습니까?

호아킨 (05:51) :

그리고 그것은 흥미로운 시간이었습니다. 갑작스럽고 어려운 결정은 가능한 한 순위와 추천을 위해 가장 복잡한 신경망을 구축하기 위해 서두르는 것이 아니라 우리가 가지고있는 기술을 고수합시다. 합리적입니다..우리는 부스트 된 의사 결정 트리를 사용하고 있었고 온라인 선형 모델과 같은 것들을 사용했습니다. 비교적 간단한 것입니다.대규모에서는 그렇게 간단하지 않을 수 있습니다.하지만 아이디어는 매주 배송 할 수 있습니까?몇 주가 걸리지 않도록

Jeremie (06:26) :

와.

호아킨 (06:26) :

네, 그게 비전이었습니다.비전은 매주 배였습니다.진언과 거의 비슷해졌습니다.다들“매주 배를 배워요”라고 했어요그래서 우리는 연구에서 생산까지의 경로를 관리하기위한 전체 생태계를 구축했습니다.그리고 그것은 많은 일을했습니다.회사 전체에 걸쳐 구축 한 도구 모음입니다.광고에만 집중했기 때문에 흥미 롭습니다.아이디어는 모든 종류의 모델을 구축하는 광고의 모든 사람이 모든 종류의 표면에서 어떤 종류의 이벤트를 예측하여 실제로 코드를 공유하고 아이디어를 공유하며 실험 결과를 공유하는 것이 매우 쉬울 것이라는 것이 었습니다.

호아킨 (07:00) :

거의 실제로 누구와 이야기해야하는지 아는 것입니다.사실 가장 중요한 것은 커뮤니티를 구축하는 것입니다.비전은 이것이 실제로 모델을 표현하는 프레임 워크와 무관 한 것이 었습니다. TensorFlow와 Keras가 인기를 얻었을 때 당연히이를 지원했습니다.PyTorch를 지원합니다.하지만 정말로 C ++로 처음부터 무언가를 작성하고 싶다면 게스트가 되십시오.꽤 불가지론 적입니다.워크 플로 관리에 관한 것입니다.

호아킨 (07:28) :

결국 팀은 우리가 구축하고있는 것을 채택하도록 요청하기 시작했습니다.그리고 시간이 지나면 회사 전체가 우리가 만든 것을 채택했습니다.우리는 컴퓨터 비전, NLP, 음성, 추천, 기계 번역, 기본적으로 모든 것을위한 전문 서비스를 위에 추가하기 시작했습니다.그로 인해 Applied ML이라는 팀이 탄생했습니다. 제가 몇 년 동안 구축을 도왔고이 팀은 기본적으로 회사 전체에 제공하고 ML을 민주화하여 모든 제품 팀의 손에 맡겼습니다.

호아킨 (08:06) :

아이디어는 마법사가 확장되지 않기 때문에 그렇게 많은 마법사가 필요하지 않으며, 마법사가 근본적인 혁신의 창시자가 될 것이지만 회사 전체에서 수천 명의 엔지니어는 아니더라도 수백 명의 엔지니어로 구성된 생태계를 가질 수 있다는 것입니다.이러한 것들을 매우 쉽게 활용하고 구축 할 수 있습니다.그래서 저는 본질적으로 3 년 전까지 그렇게했습니다.그리고 우리가 전환하기 전에이 부분에 대한 질문을하고 싶으 시다면 여기에서 숨을 쉬겠습니다. Responsible AI 로의 전환 인 세 번째 큰 순간이 될 것 같습니다.

Jeremie (08:41) :

특히 경력의 두 번째 단계에서 저에게 큰 도움이되는 사항 중 하나는 프로세스 구현에 정말 능숙 해지는 것과 같은 프로세스 구현에 대해 이야기하고 있다는 것입니다.그리고 사람들이 인공 지능 윤리, 인공 지능 공정성, 그런 종류의 이야기를 할 때마다 이것이 저를 오싹하게하거나 전체 공간에 대해 약간 긴장하게 만드는 것이 명백한 일관성 부족이라는 것 같습니다.

Jeremie (09:04) :

AI 공정성이 무엇인지, AI 윤리가 무엇인지 알기는 어렵습니다.모든 사람이 다른 정의를 가지고있는 것 같습니다.또한 이러한 정의를 얻은 후에도 복제 가능하고 확장 가능한 프로세스로 코드화 할 수있는 방법도 명확하지 않습니다.그래서 그 전문성은 중요 했겠죠?프로세스 개발 흐름이 AI 작업의 공정성에 매핑 될까요?

호아킨 (09:27) :

그렇습니다.이제 머리에 못을 박았습니다.회사 내부에서 AI를 민주화 할 때했던 많은 일들이 현재 우리가 Responsible AI를 개발하고 있다는 점에서 많은 도움이 되었기 때문에 흥미 롭습니다.하지만 지금 당장 Facebook에서 프로덕션에 배포 된 모든 모델이 무엇인지, 누가 모델을 만들 었는지, 어떤 모델로 들어 갔는지 확인할 수있는 도구가 있다는 생각은 이러한 수준의 방해와 일관성을 제공하는 것입니다., 정말 중요합니다.하지만 물론 Responsible AI에는 훨씬 더 많은 것이 있습니다.당신이 말했듯이, 개념의 정의에 대해 광범위한 의견 차이가 있습니다.그래서, 그 세계로의 저의 여정에 대해 말씀 드리겠습니다.

호아킨 (10:23) :

저는 공정성, 책임 성, 투명성 워크숍을 눈꼬리로 따라 가고있었습니다.나는 그것이 일어난 첫해가 아마도 2014 년이나 NeurIPS에서 그와 비슷한 일이라고 생각하며, 계속 반복되었습니다.그리고 2018 년이 싹 트는해라 고 생각합니다.사실 저는 그 워크숍에 참석했습니다.그것은 독자적인 종류의 회의가되었고 2018 년에는 뉴욕에서 열렸습니다.

호아킨 (10:53) :

하지만 2017 년 말 뉴욕 컨퍼런스에서 케이트 크로포드 나 솔론 바로 카스 등 많은 사람들의 기본적인 기조 연설이 몇 차례있었습니다.제 뇌 전체가 어떤 식 으로든 폭발하고 지금이 바로 지금이라고 생각했던 것처럼 제게는 분명해졌습니다.지금이 분명합니다.여기 가스에 음식을 넣어야합니다.우리는 모두 참여해야합니다. 우리는 초기 노력에서 Responsible AI에 초점을 맞춘 큰 헌신적 인 노력을 실제로 구축해야합니다.

호아킨 (11:27) :

그리고 수학을 좋아하는 사람, 공학을 좋아하는 사람, 프로세스와 플랫폼을 좋아하고 사람들에게 도구를 제공하는 사람으로서 저의 배경을 가지고 있습니다.개월 [누화 00:11:42].

Jeremie (11:43) :

그렇게 어려울 수는 없습니다.

호아킨 (11:44) :

예, 그렇게 어려울 수는 없습니다.얼마나 어려울 수 있습니까?여기를 살펴 보겠습니다.그래서 저는 일부 작업과 일부 정의를 살펴 보았습니다.그리고 물론 즉시 명확 해졌습니다.이것은 공정성과 그들의 정치에 대한 21 가지 정의에 대한 아름다운 강연을 제공하는 Arvind Narayanan의 작품입니다.그가 2018 년에 그것에 대해했던 연설이 있습니다. 당시에는 FAT Star 컨퍼런스라고 불 렸습니다.이제 FACT라고합니다.[들리지 않음 00:12:11] 커뮤니티는 [NIPS 00:12:14] 및 FAT와 같은 끔찍한 이름을 만드는 데 능숙했습니다.운 좋게도 이름을 변경했습니다.

제레미 (12:18) :

빨리 움직이고 물건을 부수십시오.

호아킨 (12:19) :

빨리 움직이고 물건을 부수십시오.그래서 저는 괜찮다고 생각했습니다.이 21 개의 정의 중 일부 공정성 정의는 그룹 간의 결과를 균등화하기 위해 노력하고, 일부 공정성 정의는 모든 사람을 동일하게 대하는 데 초점을 맞추고 있습니다. 저는 정말 얼마나 많은 것이 필요한가요?아마도 우리는 몇 가지를 구현할 수있을 것입니다.저는 드롭 다운 상자처럼 상상합니다. [누화 00:12:44] 수행자로 어떤 것을 선택해야합니까?저는 우리가 하위 그룹, 모델의 정확성, 보정 곡선,이 모든 것들에 의해 분류 된 데이터 구성의 아름다운 시각화를 가질 수 있다고 생각했습니다.좋아요, 우리는 이것을 얻었습니다. 우리는이 일을 몇 달 안에 끝낼 수 있습니다.

호아킨 (12:59) :

그런 다음 AI 공정성이 주로 AI 문제가 아니며 수학에는 답이 없다는 것이 엄청난 수의 벽돌처럼 저를 때렸습니다.그리고 사용해야하는 공정성의 정의는 상황에 따라 매우 달라집니다.도덕 철학과 정치 철학에서 온 사람들이 참여하는 다 분야 팀을 구성해야합니다.그것은 실제로 매우 중요합니다.그리고 아마도 가장 중요한 것은 공정성이 모델의 속성이 아니라는 것입니다.상태 상자가 아닙니다.실제로는 과정입니다.공정성은 과정입니다.사실 저는 카메라를 조금 기울여 보여 드릴 것입니다. 저는 의도적으로 우리 팀을 위해 제작 한이 티셔츠를 입고 있습니다. 공정성은 과정입니다.

Jeremie (13:45) :

아, 아주 좋아.

호아킨 (13:46) :

그래서 이건 저희가 팀을 위해 만든 티셔츠 세트입니다. 제가 항상 이것을 반복했기 때문입니다.그래서 어느 날 우리 팀의 비서가 모두를위한이 티셔츠 더미를 내놓고 말 했어요. “좋아요, 여러분은 항상 공정성이 하나의 과정이라고 계속해서 말하고 있습니다 [들리지 않음 00:14:03].”어쨌든 우리는 자부심을 가지고 착용합니다.당신은 결코 끝나지 않았습니다.엔지니어가 생각하기 조금 어려울 수있는 점은 이것이 아니라는 것입니다. 아, 여기에이 마이크를 만들어서 끝났습니다.나는 그것을 테스트했고 작동합니다.그렇지 않습니다.

호아킨 (14:20) :

시간을 거슬러 올라가면 인류는 아리스토텔레스 이후로 공정성에 대해 논의 해 왔습니다.우리는 여전히 논의 중이며 동의하지 않습니다.그리고 그것은 우리가 다른 이념을 가지고 있기 때문에 정치가됩니다.따라서 위험 평가, 결정 사항 표시, 결정 방법 등을 문서화하는 여러 분야의 프로세스를 구축해야합니다.그리고 그것은 공정성을위한 것입니다.분명히 Responsible AI에는 다룰 다른 많은 차원도 있습니다.

Jeremie (14:54) :

부분적으로는 공정성이라는 개념을 프로세스로서 좋아합니다. 왜냐하면 Goodhart의 법칙이라는 잘 알려진 원칙이 있기 때문입니다.측정 항목을 정의하자마자이 숫자 하나를 최적화 할 것이라고 말하면 갑자기 사람들이 그 주변의 방법을 찾고 해킹을 찾고 치트를 찾습니다.나는 오늘 주식 시장에서 그것을보고있을 것입니다.

Jeremie (15:12) :

일반적으로 주식 시장이 오르면 국민의 삶의 질이 올라간 것이 일반적으로 1950 년으로 거슬러 올라갑니다.하지만 이제는 사람들이 게임과 정치를 시작하고이를 중심으로 최적화하면서 분리되는 현상을 목격하고 있습니다.그래서, 이것은 마치 … 제 말은, 전략의이 부분이 단일 손실 함수가없고 개선 할 단일 최적화 함수가 없다는 사실을 인식하고 대신 프로세스에 집중 해 보겠습니다.

호아킨 (15:35) :

물론.이에 대해하고 싶은 말이 몇 가지 있습니다.우선, 모든 단일 메트릭은 불완전합니다.구체적으로 공정성에 대해 작업하지 않더라도 메트릭 목표를 설정하는 순간, 특히 많은 기술 회사가 매우 성공한 이유 중 하나는 빠르게 반복 할 수 있다고 생각하기 때문이라고 생각합니다., 우리는 메트릭 기반이 될 수 있으며 이러한 메트릭을 이동할 수 있습니다.

호아킨 (16:11) :

그러나 동시에 그것은 잠재적으로 우리의 아킬레스 건이 될 수 있으며 실제로 당신을 곤경에 빠뜨릴 수 있습니다.따라서 매우 강력한 비판적 사고를 개발하는 것이 필수적입니다.그리고 우리가 카운터 측정 항목이라고 부르는 것을 개발하는 것이 중요합니다. 예를 들어이 측정 항목을 개선 할 때 더 나빠져서는 안되는 위치에서 작동하는 다른 측정 항목과 같습니다.하지만 그것조차-

Jeremie (16:36) :

[누화 00:16:36] 실제로 그 중 하나의 예?그것은 매혹적인 아이디어처럼 들립니다.

호아킨 (16:39) :

간단한 아이디어는 음성 인식 시스템의 정확도를 향상 시키려고 노력하고 있으며 원하는대로 단어 오류율 또는 이와 유사한 방식으로 측정한다고 가정 해보십시오.따라서 공정성에 관심이있는 경우 만들 수있는 카운터 측정 항목 중 하나는 실제로 분석 할 수 있다는 것입니다. 예를 들어 미국에서는 악센트가 국가마다 다르기 때문에 일부 지리적 그룹별로 측정 할 수 있습니다.그리고 카운터 메트릭은 평균이 항상 당신에게 도달하기 때문에 어떤 그룹의 성능을 저하시킬 수 없다는 것입니다.

Jeremie (17:21) :

네.

호아킨 (17:21) :

당신은 다수 집단을 위해 일을 두 배 더 좋게 만들 수 있고, 다른 집단을 위해 그들을 더 나쁘게 만들 수 있으며, 심지어 깨닫지 못할 수도 있습니다.따라서 이는 매우 공정성 중심의 측정 항목입니다.하지만 경험의 여러 측면을 최적화하려는 다른 많은 시나리오를 상상할 수 있으며 더 악화시키고 싶지 않은 특정 사항이 있습니다.

Jeremie (17:51) :

이에 대해 처음으로 언급 한 의견 중 하나는 공정성이거나 공정성에 대한 정의는 데이터 과학자에게 어려운 일이 아니라고 생각합니다.

호아킨 (17:58) :

권리.

Jeremie (17:58) :

그것은 그들이 걱정할 필요가없는 것입니다.데이터 과학자는 공공 정책에서 철학 학위와 학위를받을 시간이 없습니다.그래서 궁극적으로 누군가의 직업이 될 것입니다.그리고 그것이 정책 입안자이든 인문학 배경이 더 많은 사람이든, 마음에 떠오르는 한 가지 질문은 이러한 지표에 대한 대화의 성격이 기술적으로 매우 빠르게 진행된다는 것입니다.내리는 결정의 본질을 전달할 수 있다는 것은 그 자체로 어려운 일입니다.이러한 문제가 많이 발생하고 있으며 그 문제를 해결하기 위해 사용하는 전략이 있습니까?

호아킨 (18:32) :

도전입니다.우리가 성공한 것 중 하나는 회사 전체의 공정성에 대해 이야기 할 수있는 일관된 어휘를 정의하고이를 매우 구체적이고 예를 통해 설명하기 위해 복잡성이 증가하는 일관된 질문 세트를 정의하는 것입니다.공정성에 대한 가장 기본적인 정의 중 하나는 질문하는 것입니다. 내 제품이 모든 그룹에서 잘 작동합니까?그룹을 정의하는 문제는 물론 상황에 따라 매우 다릅니다.

호아킨 (19:18) :

왼쪽에는 Facebook Portal 카메라가 있고 사람을 추적 할 수있는 스마트 AI가 있습니다.내가 스페인에있는 부모님이나 독일의 부모님과 화상 회의를하고 있다면 기본적으로 우리의 주말이 우리 아이들과 어떻게 진행되는지, 아니면 그들과 화상 회의를 하는지를 상상할 수 있습니다.실제로 Skype 또는 FaceTime에 사용하는 휴대폰이 있거나 사용하는 소프트웨어를 사용하는 경우 프레임을 중앙에 유지하려고하는 것이 정말 짜증나 기 때문입니다.

호아킨 (19:56) :

포털에서는 마법과도 같습니다.하지만 사람을 추적하는 AI는 축소, 자르기, 중앙 등 모든 것을 축소 할 수있는 두 사람이 있는지 확인합니다. 피부 톤 전체에서 똑같이 잘 작동 할 것이라고 당연하게 생각할 수 없습니다.또는 성별 또는 연령.그런 맥락에서 최소한의 서비스 품질을 어떻게 정의 할 수 있습니까?그리고 최소한의 서비스 품질은 누군가가 잘 리거나 무언가가 잘리는 실패율이 특정 작은 비율의 시간이나 프레임 또는 세션 수보다 작아야한다는 것입니다.

호아킨 (20:34) :

이는 합리적인 개념입니다.이 아이디어는 최소 서비스 품질입니다.나는 내 제품이 모두에게 충분히 잘 작동하기를 바랍니다.물론 내 제품의 맥락에서 핵심 질문 중 하나는 무엇을 구축하려고하는지 고려할 때 고려해야 할 가장 민감한 그룹은 누구입니까?나중에 원하신다면 토픽 항아리에 무언가를 넣겠습니다. 선거 간섭에 대해 이야기 할 수 있습니다.그리고 우리는 그러한 맥락에서 AI가 어떻게 도울 수 있는지에 대해 이야기 할 수 있습니다.그리고 우리는 인도 선거에 대해 이야기 할 수 있습니다.그런 다음 그 맥락에서 어떤 그룹이 관련이 있는지 추론 할 수 있습니다.

호아킨 (21:12) :

그러나 포털 예제로 돌아 가면 공정성에 대한 가장 기본적인 질문은 메트릭을 분리 할 수 있습니까?입니다.팀은 일반적으로 기준을 시작했습니다.따라서 데이터 과학, ML 팀은 “이 모델이 충분히 좋은가요?”라고 말할 것입니다.음, 질문은 그룹별로 분리 된 롤업 측정 항목을 사용하는 대신,이 경우 피부톤 일 수 있습니다. 연령 및 성별에 사용할 수있는 척도가 많고 각 버킷에 대해성능이 가장 나쁜 버킷에서 그게 유일한 인구 였다고 상상해보세요. 여전히 출시 하시겠습니까?

호아킨 (21:50) :

대답이 ‘아니요’인 경우에는 앉아서 알아 내야 할 것입니다. 좋아요. 내가 아무도 떠나지 않도록하려면 어떻게해야하나요?그런 다음 인도 선거로 이어지는 한 가지 질문과 공정성에 대한 정의가 본질적으로 더 비교됩니다.어떤면에서 최소한의 서비스 품질은 기준과 비교되지만 반드시 걱정할 필요는 없습니다. 오, 다른 그룹보다 그룹에 대해 여전히 조금 더 효과적 일 수 있습니다.모두에게 충분히 잘 작동한다면 괜찮습니다.그리고 저는 굿 하트의 법칙이라는 주제에 또 다른 주제를 넣을 것입니다.이 법칙은 여러분이 어떻게 최소한의 서비스 품질을 게임하거나 망칠 수 있는지에 대한 것입니다.

호아킨 (22:30) :

그러나 다음 단계는 대우의 평등 또는 평등입니다.당신은 말할 수 있습니다. 좋아요, 저는 실제로 성능의 차이에 관심이 있습니다.그리고 인도 선거의 예는 이와 같습니다.작년 4 월, 5 월경, 제가 정확하게 기억한다면 인류 역사상 가장 큰 선거를 치렀습니다.10 억 명의 등록 유권자에 가까웠 던 것 같습니다.그보다 조금 적지 만 방대합니다.그리고 잘못된 정보와 조작 시도에 대한 우려가 많은 시대에.

호아킨 (23:08) :

AI없이이 문제를 해결하는 방법은 표준, 커뮤니티 가이드 라인, 콘텐츠 정책을 제공하고 콘텐츠가이를 위반하지 않는지 확인하는 사람을 두는 것입니다.만약 그렇다면, 당신은 그것들을 내려 놓습니다.하지만 문제는 이번 선거의 규모와 우리가 보유한 규모에 따라이를 수행하기 위해 고용 할 수있는 사람이 많지 않습니다.그러니 여러분이해야 할 일은 작업의 우선 순위를 정하는 것입니다. 왜냐하면 제가 기타를 연주하거나 고양이 나 개가 등장하는 것에 대한 제 게시물은 검토하는 데 시간을 낭비해서는 안되기 때문입니다.

호아킨 (23:47) :

하지만 정치인이 논의하는 문제가 있거나 정치인이 아니더라도 조직에서 시민 콘텐츠, 사회적 또는 정치적 문제를 논의하는 콘텐츠에 대해 이야기하고 있다면 우선 순위를 지정해야합니다.그래서 우리는 그렇게하는 AI를 만들었습니다.우리는 이것을 시민 분류기라고 부릅니다.따라서 콘텐츠를 살펴보고 본질적으로 시민적일 가능성이있는 콘텐츠를 식별 한 다음 사람이 검토 할 수 있도록 우선 순위를 지정합니다.

호아킨 (24:20) :

공정성 문제는 무엇입니까?음, 공정성 문제는 인도에서 20 개가 넘는 공식 언어가 있고 문화적 특성이 매우 다른 지역이 많이 있다는 것입니다.그래서 실제로 인구를 지역과 언어로 나누면 그것이 종교 나 카스트와 같은 것들과 실제로 어떻게 연관되는지 볼 수 있습니다.그리고 다른 지역의 사람들과 관련된 사회 문제는 다릅니다.하지만 이제는 인적 자원을 배치하여 콘텐츠를 검토하는 위치를 우선으로하는 AI가 있습니다.AI가 몇 가지 언어에서만 잘 작동하고 다른 언어에서는 작동하지 않으면 어떻게 되나요?

호아킨 (25:01) :

따라서 언어 비유를 취하면 언어에 대한 위험을 과대 평가하면 어떻게 될까요?즉, 우선 순위를 정하고… 해당 언어로 게시물을 검토하기 위해 더 많은 인력을 투입 할 것입니다.그리고 다른 언어에 대해 어떤 것이 본질적으로 시민적일 가능성을 과소 평가하거나 과소 평가한다면 우리는 그곳에 충분한 인적 자원을 할당하지 않습니다.

호아킨 (25:22) :

그리고 나서 우리는 최소한의 서비스 품질에 그치지 않기로 결정했습니다. 이것이 우리가 진정으로 동등한 대우를 원하는 경우라고 생각했습니다.그리고 여기에있는 것은 0과 1 사이의 숫자를 출력하는 이진 분류기입니다. 즉,이 콘텐츠가 시민적일 확률이 얼마나되는지, 우리가 말한 것은 잘됩니다. 우리는 이러한 예측이 모든 단일 항목에 대해 잘 보정되기를 원합니다.언어와 모든 단일 지역.

호아킨 (25:47) :

다시 말하지만, 공정성이라는 개념은 자원 할당의 공정성에 관한 것이기 때문에 더 높은 기준을 설정했습니다.그리고 그림을 완성하기 위해 우리가 내부적으로 사용하고있는 세 번째 공통적 인 정의와 질문 세트는 형평성에 관한 것이며 모든 사람과 모든 것을 동일하게 대해야하는 것이 아니라 시스템의 성능이모두에게 특정 기준을 넘어 섰습니까?그러면 질문은 예를 들어 제품 결과에 특별한주의를 기울여야 할 사람들이 있는가?그리고 이것은 우리가 고려해야 할 역사적 맥락이 있기 때문일 수 있습니다.

호아킨 (26:42) :

그리고 미국에서 인종 정의 인식의 여파로 2020 년에 본 한 가지 예는 예를 들어 Facebook에서 흑인 소유 기업의 비즈니스 성과에 초점을 맞추 었습니다.그래서 우리는 Facebook 플랫폼이 이미 존재했던 상황을 개선하는 데 도움이 될 기회가 있다고 느꼈기 때문에 흑인 소유 기업에 가시성을 제공하는 데 도움이되는 제품 노력을 구축했습니다.

호아킨 (27:17) :

공정성에 대해 생각할 때 자주 묻는 질문은 책임 중 하나입니다.좋아요, 사람들은 뭐라고 말할지 모르지만 사회는 편견이 있고 여기에 저는 중립적 인 기술을 만들었습니다. 저는이 게임에 피부가 없습니다.그리고 우리가 말하는 것은 그렇게 작동하지 않는다는 것입니다.여러분의 기술은 이러한 편견을 반영 할 수 있고,이를 영속화 할 수 있으며,이를 합법화하거나 디버그 또는 이해하기 매우 어렵게 만드는 블랙 박스 안에 캡슐화 할 수 있습니다.그리고 반대로 기술은 모두에게 더 나은 결과를 제공 할 수 있습니다.하지만 때때로 우리는 스스로에게 질문해야합니다. 우선 순위를 정할 그룹이 있습니까?그것은 많은 단어였습니다.

Jeremie (28:03) :

아니요. Facebook에서는 Twitter에서 공정성이 어떻게 관리되고 있는지에 대한 질문에 대답하기가 어렵다고 생각합니다 [들리지 않음 00:28:10].

호아킨 (28:09) :

권리.

제레미 (28:10) :

하지만 저는 여러분이 설명하시는 다양한 종류의 렌즈와 공정성에 대한 다양한 접근 방식이 정말 흥미 롭다고 생각합니다.프로세스 관점에서 제가 정말 궁금한 점 중 하나는 적용 할 공정성 기준에 대한 결정이 조직 내 어디에서 비롯된 것입니까?그리고 그 결정을 내리는 과정이 현재 충분히 공식화되고 구조화되어 있다고 생각하십니까?분명히 반복이있을 것이지만 그 프로세스가 어떻게 구성되어야하는지에 대해 좋은 감각이 있다고 생각하십니까?

호아킨 (28:42) :

네.그래서 우리는 프로세스를 구축하고 있습니다.그러나 우리에게 매우 분명한 것은 그것이 허브 앤 스포크 모델이라는 것입니다.따라서 우리는 여러 분야의 중앙 집중식 책임있는 AI 팀을 보유하고 있습니다.앞서 언급했듯이 AI 과학자와 엔지니어뿐만 아니라 도덕적, 정치적 철학자와 사회 과학자도 있습니다.그리고 그 팀이하는 일은 이러한 질문들 중 일부를 묻는 윤리적 틀을 제공하는 것부터 전체 레이어 케이크입니다. 그래서 그것이 질적 부분이 될 것입니다. 만약 당신이 원한다면 양적 부분으로 더 가십시오.우리는 어떻게…

호아킨 (29:26) :

이제 평등과 최소 서비스 품질에 대해 이야기했습니다.평등을 위해 이진 분류 자에 대해 이야기했습니다.그것이 실제로 수학에서 무엇을 의미합니까?나는 무엇을 봅니까?그룹 간의 오 탐률을 보나요?답변, 아닙니다. 문제가 있기 때문에 반드시 그런 것은 아닙니다.하지만 당신은 무엇을합니까?

호아킨 (29:48) :

그리고 그 아래에는 플랫폼과 도구 통합이 더 많은 또 다른 계층이 있습니다.다시 말하지만, Applied ML에서 수행 한 모든 작업을 활용하여 알고리즘의 예측을 그룹 등으로 분류 할 수 있도록 정말 쉽고 정말 친근하게 만들 수 있을까요?그래서, 당신은 실제로 정말 중요한 근무 시간과 같은 것들을 포함하여 전체 레이어 케이크를 가지고 있습니다.중앙 집중식입니다.

호아킨 (30:15) :

그리고 보시다시피 모든 제품 팀은 중앙 집중식 팀과 매우 긴밀하게 협력 할 자체 내장 전문가 그룹을 구축하고 있습니다.그리고 이렇게해야하는 이유는 중앙 집중식 팀이 일관된 관행, 일관된 용어 및 정의를 갖도록해야하지만, 이전에 결정을 내릴 필요가 있기 때문입니다.

호아킨 (30:45) :

따라서 중앙 집중식 팀이 상황에 따라 매우 많은 결정을 내리는 것은 비실용적이고 비효율적입니다.그리고 가장 큰 것은 우리가 말했기 때문입니다. 그것은 과정입니다. 당신은 한 번 결정을 내리지 않고 끝났습니다.당신은 그것을 유지합니다.권리?

Jeremie (31:04) :

네.

호아킨 (31:06) :

참고로 나는 Shalini Kantayya의 영화 Coded Bias를 봤습니다.Joy Buolamwini, Timnit Gebru, Cathy O’Neil 및 Responsible AI에 대한 다른 많은 뛰어난 연구원들이 등장합니다.그리고 사람들이 살고 있다고 인용하고 그 사람을 오해하는 것은 정말 위험하다고 생각합니다.

호아킨 (31:32) :

그들 중 하나는 그 추상화 수준을 유지하려고합니다. 누가 말했는지 기억이 나지 않기 때문입니다. 그들 중 하나는“공정성과 같은 책임감있는 AI 관행 중 대부분은 위생과 같습니다.매일 양치질을해야하는 것 같아요.”그래서 제가 생각하는 방식입니다.제품의 맥락에서해야합니다.따라서 점점 더 많은 제품 팀이 자체적으로 노력을 기울이고 있으며 그들과 매우 긴밀하게 협력하고 있습니다.

Jeremie (32:04) :

그리고 당신은 어떻게 결정합니까 … 그래서, 이것의 거의 경제적 측면이 제가 매료되었습니다.저는 OpenAI의 AI 정책 전문가 중 한 명인 Amanda Askell을 본 것 같습니다. 그녀는 알고리즘이 나쁘다는 이유를 찾을 수 있다면 알고리즘이 그럴 필요가 없다는 주제가 현재 AI 윤리 커뮤니티에 있다는 아이디어에 대해 트윗했습니다.배포.시대 정신 주의자들은 사람들이“오, 음,이 알고리즘은 이런 한계에서 차별을한다”고 말할 정도의 분위기가 있습니다.

Jeremie (32:33) :

물론 우리는 모든 알고리즘이 어떤 식 으로든 필연적으로 차별 할 것이라는 것을 알고 있습니다.그래서 우리가 말하는 일종의 문턱이 있어야합니다. 좋아요, 이것은 너무 많고 이것으로는 충분하지 않습니다.그 관점에서 경제적 절충에 대해 어떻게 생각하십니까?내 말은, 소가 집에 올 때까지 알고리즘을 편향하지 않으려 고 할 수 있지만 어느 시점에서 뭔가 시작되어야합니다.그래서 네, 그 트레이드 오프에 대해 어떻게 생각하십니까?

호아킨 (32:59) :

그 질문에 대한 순전히 정량적 인 답을 내놓는 것은 매우 어렵다고 생각합니다.다시 말하지만, 수학 및 공학 전문가로서 AI를 사용하여 증오심 표현을 줄이려면 오 탐지 비용이 40 달러와 3 센트라고 말하는 기능 비용을 절감 할 수 있기를 바랍니다.그래서 그것은 매우 어렵습니다.나는 그것이 닿는 것은 몇 가지에 있다고 생각합니다.저는 투명성을 생각하고 거버넌스에 영향을 미칩니다.

호아킨 (33:40) :

그리고 저는 일이 진행될 것이라고 생각합니다. AI를 제품으로 만들 때 위험 편익 분석에 대해 매우 투명한 제품에 대한 기대가있을 것이라고 생각합니다. 요즘 제가 사용하는 문구가 있습니다.아마도 누군가로부터 그것을 훔 쳤을 것입니다. 저는 잘 모르겠습니다.이 AI 최소화 아이디어,이 아이디어는 … 사람들이 데이터 최소화에 대해 이야기하는 것과 같은 방식입니다.그래서 AI 최소화.내 본능이 아니라 멋져서 AI를 사용 하자는 것 같아야합니다. AI 없이도 할 수 있을까요?그리고 대답이 아마도 그럴 수도 있지만 인공 지능을 넣으면 모든 사람에게 엄청난 가치를 더 해줍니다. 그것은 마치 정당화되고 가치가 있습니다.

호아킨 (34:33) :

그 다음에는 모든 위험 목록 인이면이 있습니다.그리고 위험 중 하나는 차별 일 수도 있고 불공정의 다른 정의 일 수도 있습니다.그리고 저는 이러한 트레이드 오프에 대해 투명하게 생각하고 피드백을 받고 수용 가능한 것을 조정하고 볼 수있는 폐쇄 루프 메커니즘을 이상적으로 좋아하는 것으로 생각합니다. 이것이 우리가하게 될 피할 수없는 미래라고 생각합니다.

호아킨 (35:06) :

제가 많이 사용하는 예는 인공 지능의 예는 아니지만 다시 말씀 드리지만 이러한 문제 중 상당수는 익숙한 인공 지능 문제가 아닙니다.우리는 콘텐츠 중재와 모든 사람에게 목소리를내는 것과 언론의 자유를 허용하는 것 사이의 어려운 절충에 대해 생각하지만 다른 한편으로는 유해한 콘텐츠로부터 커뮤니티를 보호합니다.그리고 분명히 해로운 잘못된 정보가 있습니다.우리는 우리 스스로 또는 우리 스스로이 일을 할 수 없거나해서는 안된다는 확고한 결론에 도달했습니다.그리고 제가 우리에게 말할 때 저는 당연히 페이스 북 직원으로서 말하고 있습니다.그러나 나는 이것이 일반적으로 기술 전반에 걸쳐 사실이라고 생각합니다.

호아킨 (35:55) :

우리는이 외부 감독위원회를 실험하고 있습니다.들어 보셨을 것입니다.전문가 그룹입니다.조례 및 운영 방식을 마련하기 위해 팀을 구성하는 데 많은 작업이 필요합니다.하지만 잠시 정신에 집중 해 보겠습니다.그 정신은 까다로운 결정이있을 것이라는 것입니다.완벽한 콘텐츠 정책은 없습니다.따라서 인간이 외부 조사와 전문 지식을 포함하는 거버넌스를 갖도록 개발하는 것은 필수적입니다.저는 결국 참여하는 것이 투명성, 책임 성, 거버넌스 메커니즘의 상호 작용이 될 것이라고 생각합니다.권리?

Jeremie (36:45) :

네.

호아킨 (36:46) :

축소하고 10 년 후 AI가 매우 널리 퍼지고 결과적으로 매우 중요하다고 생각한다면 참여형 거버넌스에 대한 하나의 큰 질문이 될 것입니다.

Jeremie (36:58) :

네.

호아킨 (36:59) :

친척이나 애완 동물을 수의사에게 데려가는 인공 지능이 어떤 종류의자가 운전처럼 꽤 경이적 일 것입니다.

제레미 (37:11) :

그리고 그 자체가 마치 페이스 북이하는 모든 과정에 이런 종류의 에너지 세를 부과하는 것과 거의 같습니다. 페이스 북이이 일을하는 것이 대단하다고 생각합니다.Facebook에 책임감있는 AI 부서가 있다는 것이 대단하다고 생각합니다.그리고 어느 정도는 그것이 오늘날 대규모로만 일어날 수 있다는 것이 완벽하게 합리적입니다. Facebook, Google 및 OpenAI와 같은 회사가 실제로 거대한 언어 모델과 거대한 컴퓨터 비전 모델을 구축 할 수있는 규모이기 때문입니다.그리고 이로 인해…이 작업에 더 많은 시간이 있었으면 좋겠지 만 AI에서의 파트너십에 대해 질문해야합니다.

호아킨 (37:43) :

물론입니다.

Jeremie (37:43) :

이 등식에서 매우 중요한 부분이기 때문입니다.제 개인적인 관심사 중 하나는 실제로 여기에서 이것에 대해 조금 이야기했지만 안전, 개인 정보 보호, 공정성, 윤리,이 모든 것들이 실제로 존재한다는 생각은 사실상 세금이라는 형태를 취합니다.경쟁적인 조직에서.구글은 페이스 북과 경쟁해야합니다.페이스 북은 다른 사람들과 경쟁해야합니다.시장입니다.

Jeremie (38:06) :

그리고 그것은 좋은 것입니다. 그러나 공정성에 대한 세금이있는 한, 안전에 대한 세금이있는 한, 그것은 모든 사람들이 이러한 방향으로 최소한의 투자를 시도하는 바닥까지 일종의 경쟁을 할 인센티브가 있음을 의미합니다.어느 정도.그리고 적어도 제가 항상 본 것처럼 Partnership on AI와 같은 그룹은 상호 작용을 중재하고 최소 기준을 설정하는 측면에서 흥미로운 역할을합니다.우선 그 해석에 동의하십니까?둘째, 기술이 발전함에 따라 AI에 대한 파트너십을 더 큰 역할로 어떻게 생각하십니까?이것이 큰 일이라는 것을 알고 있기 때문입니다.하지만 [누화 00:38:40]에 대해 폭 넓은 생각을하고자합니다.

호아킨 (38:39) :

아니요. AI에 대한 파트너십을 도입하게되어 기쁩니다.저는 이사회에 속해 있으며 지난 몇 년 동안 매우 관여 해 왔으며 전 세계가 필요로하는 조직이라고 생각합니다.그러나 나는 레이스 가설의 논리를 이해하는 데 도움을 주시면 감사하겠습니다.그리고 아마도 우리는 당신이 원하는 책임의 차원을 선택함으로써 그것을 매우 구체적으로 만들 수 있습니다.조금 힘들어요.나는 당신이 의미하는 바를 정말로 이해하고 있는지 확인하고 싶습니다.

Jeremie (39:14) :

예, 예, 물론입니다.그래서 저는 상상하고 있습니다 … 사실 저는 AI 안전 커뮤니티에 대한 조정에서 한 예를 들어 보겠습니다.그래서, 하나의 공통된 것은 가설입니다. 필자는 이것을 반드시 받아 들일 필요는 없습니다. 그러나 구체적으로 말하자면, 그것이 사실이라고 가정합시다. 언어 모델은 임의적으로 잘 확장 될 수 있고 효과적으로 오라클 또는 그와 유사한 초강력 모델과 같은 것으로 이어질 수 있습니다.그.따라서 그들은 본질적으로 초대형 언어 모델로 할 수있는 일의 양을 제한하지 않습니다.

Jeremie (39:43) :

그리고 안전이 우려되는 한, 플롯하고 계획을 세울 수있는 독단적으로 강력한 언어 모델을 원하지 않을 수도 있습니다.”Hey, Joaquin에서 $ 80,000처럼 사기를 치려면 어떻게해야합니까?”라고 말할 수 있습니다.그리고 언어 모델은 “오, 방법은 다음과 같습니다.”입니다.그러나 OpenAI와 같은 회사는 DeepMind와 같은 회사 또는 가능한 한 빨리 확장하기 위해 다른 회사와 경쟁하고 있습니다.어느 정도의 능력을 먼저 달성하는 사람은 6 개월이나 그 어떤 시간이라도 결정적인 이점이 있다는 것입니다.

제레미 (40:16) :

이에 대한 유사점, 공정성, 편견 등이 있습니다.하지만 안전에 한계 달러를 투자하거나 투자 할 수있는 회사 경쟁에 참여할 때마다 손실되는 가치가 항상 있습니다.능력의 한계 달러.그리고 그 절충안은… 인공 지능에 대한 파트너십이 최소한 모든 사람이 준수 할 것이라고 생각하는 표준을 설정하는 조직 간의 중재에 어떤 역할을 할 수 있는지 궁금합니다.

호아킨 (40:44) :

네.감사합니다.질문을 이해합니다.이 질문은 환경 지속 가능성에 대해 조금 생각하게합니다. 기업 간에는 물론 국가 간에도 여러 가지면에서 동일한 경쟁을 할 수 있습니다.하나의 행성이있는 것과 같습니다.누가 CO2 비용 절감에 전념할까요?오, 음, 잠깐만 있으면 곧 돌아 올게요.

제레미 (41:10) :

이 나무 바로 뒤에.

호아킨 (41:13) :

바로 그거죠.저는 AI에 대한 파트너십이 여러 측면에서 핵심적인 역할을한다고 생각합니다.첫째, 포럼, 학계, 시민권 단체, 시민 사회, 기타 비영리 단체, 중소기업 및 대기업을 생각할 수있는 모든 유형의 조직을한데 모은 매우 독특한 포럼입니다.그리고 AI 파트너쉽에 관한 이러한 조직 중 일부는 다가오는 규제를 적극적으로 로비하고 형성하고 알리게 될 것입니다.그래서 저는 이미 대기업이 참여하고 길을 이끌어야한다는 압력이 이미 약간 있다고 생각합니다. 그렇게하지 않으면 모두에게 나쁜 규제를 처리해야 할 수도 있기 때문입니다.그래서 저는 그것이 한 각도 인 것 같습니다.

호아킨 (42:16) :

다른 각도는 효율성입니다.당신이 설명 해주신 일 중 일부는 저의 큰 언어 모델이 인간의 가치와 조화를 이루고 악이 아닌지 확인하는 데 투자 할 수있는 그 돈 중 일부는 대규모의 지원을받는 조직이 있다면ABOUT ML과 같은 프로젝트는 데이터 세트 및 모델에 대한 문서화 관행을 기반으로 구축 된 제가 좋아하는 프로젝트입니다. 데이터 시트, 모델 카드 및 사물에 대한 데이터 시트와 같은 아이디어의 조합입니다.그렇게, 이것들은 매우 강력합니다.

호아킨 (43:04) :

그리고 우리 페이스 북은 확실히 엄청난 관심을 기울이고 그것을 실험하고 있습니다.그리고 저는 우리가 A, 비교적 기성품이지만 아주 [누화 00:43:16] 무언가를 사용할 수있어서 기쁩니다. 우리가 직접 만들 필요가없고 추가 점수를 얻기 위해 요.이는 우리의 이익만을 나타내는 것이 아니라 AI 기반의 파트너십과 같은 조직에서 구축 한 검증과 신뢰성을 얻습니다.그리고 그것은 일반적인 패턴이 될 것이라고 생각합니다.

호아킨 (43:33) :

A는 모든 사람이있는 다중 이해 관계자 조직을 통해 얻을 수있는 360도 뷰입니다.둘째, 자신이하고있는 일을 실제로 알고있는 사람들이 제공하는 모범 사례와 권장 사항을 제공하는 효율성과 편리함, 그리고 이것이 생성되는 동안 모든 사람이보고 있었다는 사실을 알고 있습니다.그리고 세 번째는 페이스 북의 윤리적 원칙과는 다른 것을 사용함으로써 얻을 수있는 정당성과 검증입니다.권리?

Jeremie (44:06) :

네.

호아킨 (44:06) :

제 말은, 사람들이 눈살을 찌푸리고 사람들이 “오, 제 말은 거기에 어떤 관심사가 표현되어 있는가?”AI의 파트너십이 아닌 Facebook 만 있습니다.

Jeremie (44:17) :

네.내 말은, 앞으로 더 많이 볼 수 있기를 바라는 조직 중 하나입니다.그리고 그것은 그 조직의 초기 커널이 계속 꽃을 피우고있는 것 같습니다. 왜냐하면 여러분이 말했듯이 우리는 매우 다양한 수준에서이 공간에 대한 일종의 다 당파 감독이 필요하기 때문입니다.그리고 이니셔티브가 구체화되는 것을 보는 것이 좋습니다.호아킨, 시간 내 주셔서 감사합니다.사실, 특히 트위터와 같은 콘텐츠를 공유하고 싶은 곳이 있습니까? 아니면 사람들이 당신의 작업에 대해 더 많이 알고 싶어 할 때 사람들을 가리키고 싶은 개인 웹 사이트가 있습니까?

호아킨 (44:49) :

오, 고백이 있습니다.그래서 저는 늦은 트위터 사용자입니다.

Jeremie (44:58) :

오, 아마 정신 건강에 좋을 것입니다.

호아킨 (45:03) :

하지만 이제는 공개 토론에 기여하고 참여하는 것이 [들리지 않음 00:45:14] 일 수 있다는 강한 책임감을 느낍니다.지금 당장 내 트위터를 찾아 보느라 너무 당황 스러울거야.Twitter에서는 @jquinonero입니다.자, J와 제 이름입니다.복잡합니다.스페인에서 왔기 때문에 성이 두 개 있습니다.

Jeremie (45:33) :

우리는 그것을 공유 할 수 있습니다.

호아킨 (45:34) :

우리는 … 정확합니다.그래, 그래.더 많이 참여하겠다고 개인적으로 약속했고, 말씀하신 것처럼 내 정신 건강을 방해하지 않는 방식으로이를 수행하는 방법을 배워야 할 것입니다.

Jeremie (45:48) :

네.나는 그것이 어떤 이유로 가장 큰 도전 중 하나라고 생각합니다. 특히 트위터에서 나는 그 마음을 챙기는 상태를 유지하고 피드에서 길을 잃지 않는 것을 발견했습니다.소년.어쨌든, 우리는 10 년 동안 지옥에 왔습니다.하지만 시간을 내 주셔서 감사합니다.정말 감사하고 대화를 정말 즐겼습니다.

호아킨 (46:05) :

정말 고마워요, Jeremie.여기에 오게되어 정말 기쁩니다.그리고이 팟 캐스트를 해주셔서 감사하고 모든 사람들이 이런 종류의 대화에 참여하게 해주셔서 감사합니다.

Jeremie (46:17) :

천만에요.

Mapping Black-Owned Businesses with GeoPy and Folium -번역

흑인 소유 기업을 GeoPy 및 Folium으로 매핑

광역 보스턴 지역의 흑인 소유 기업을 탐색 할 수있는 공용 대화 형지도

Image for post

Introduction

COVID-19 전염병은 미국 전역의 소규모 기업에 심각한 피해를 입혔으며 흑인 소유 기업은 계속해서가장 세게 치다.작년에 많은 사람들은 지속적인 경제 및 인종 정의 위기가 공중 보건 위기와 함께 증가하는 것을 지켜 보았습니다.지역 및 흑인 소유 기업을 지원하기위한 전화는 이러한 동시 적 위기를 종식시키는 데 필요한 모든 것을 달성하기가 어렵습니다.그러나 그러한 요청은 인종적 부의 격차를 좁히고 지역 경제를 회복하기위한 올바른 방향으로 나아가는 작은 단계가 될 수 있습니다.

지도이 기사에서 iscussed는 그레이터 보스턴 지역에서 지원하기 위해 흑인 소유 기업을 탐색하는 데 관심이있는 사람들과 다른 지역에 대해 유사한지도를 만들고자하는 사람들을위한 리소스입니다.지도는이 데이터를 사용합니다.크라우드 소스 스프레드 시트보스턴 지역의 흑인 소유 상점, 레스토랑 및 서비스.스프레드 시트의 모든 항목이 흑인 소유 비즈니스로 확인 된 것은 아니므로 맵에 확인 된 항목과 확인되지 않은 항목이 모두 포함될 수 있습니다.

데이터 정리

위 스프레드 시트 문서의 데이터는 ‘레스토랑’, ‘상점’및 ‘서비스’라는 세 개의 별도 pandas 데이터 프레임으로 읽혀졌습니다. 데이터 프레임의 열은 각각 ‘이름’ ‘을 포함하도록 필요한 경우 이름이 변경되었습니다.주소 ‘및’웹 사이트 ‘열.최종 서비스 데이터 프레임에는 매핑 단계에서 서비스 범주별로 간단한 하위 집합을 허용하는 ‘범주’열도 포함되어 있습니다.

중복 된 이름이 제거되어 각 비즈니스에 대해 하나의 마커가지도에 추가 될 수 있습니다.많은 다중 서비스 비즈니스는 서비스 데이터 프레임에서 중복 된 모습을 보였습니다.각 비즈니스의 첫 번째 발생 만 유지되었습니다. 즉,지도의 한 가지 제한은 마커가 일부 비즈니스에서 제공하는 다양한 서비스를 캡처하지 못할 수 있다는 것입니다.

식당 및 서비스 데이터 프레임의 경우 주소 데이터는 원래 여러 열에 분산되어있었습니다.각 주소의 구성 요소는 다음과 함께 단일 열로 연결되었습니다.Series.str.cat () 이 예제에서와 같이 방법 :

지리 좌표 얻기

각 데이터 프레임에 대한 전체 주소 열이 준비되면 다음을 사용하여 지리적 좌표를 얻었습니다.GeoPy.GeoPy 클라이언트를 사용하면 개발자가 주소가 지정된 좌표를 검색 할 수 있으며 그 반대의 경우도 마찬가지입니다.아래 함수는 열을 반복하고 위도와 경도를 ‘위도’및 ‘경도’목록에 추가하여 주소의 전체 열에 대한 좌표를 얻습니다.클라이언트는 좌표 데이터를 얻을 수없는 특정 주소에 대해 NoneType 개체를 반환했습니다.이러한 경우를 설명하기 위해 함수의 if / else 문은 좌표 데이터가geopy.location.location목적;NoneType 개체의 경우 “NA”가 목록에 추가됩니다.

지도에 마커 추가

위의 함수는 도우미 함수로 사용되었습니다.add_markers (), Folium의지도에 마커를 추가합니다.위치 매개 변수folium.map () 지도의 기본 중심 위치를 표시하는 지리적 좌표 세트를 사용합니다.그만큼타일매개 변수는지도의 배경 스타일에 영향을 미치고 zoom_start 매개 변수는지도의 초기 확대 / 축소 수준을 참조하며, 숫자가 높을수록 더 가까이 확대됩니다.

그만큼add_markers () 함수는 ‘주소’열, 마커 색상 및 마커 아이콘이있는 데이터 프레임을 인수로받습니다.주소에 대한 좌표 데이터를 검색합니다.get_lat_lon ()좌표 데이터가 누락 된 행을 필터링합니다.지도에 추가 할 포인트와 해당 비즈니스 정보는 zip 개체 목록에 저장됩니다.for 루프에서 ‘p’로 별칭이 지정된 각 개체에는 다음 데이터가 포함됩니다.

  • p [0] 및 p [1] : 각각 위도와 경도
  • p [2] : 업체명
  • p [3] : 사업장 주소
  • p [4] : 비즈니스 웹 사이트

웹 사이트가 스프레드 시트에 기록되지 않은 경우 각 비즈니스 웹 사이트에 대한 zip 개체의 최종 요소에 null 데이터가 포함될 수 있습니다.함수의 if / else 문은 이러한 경우 마커의 팝업 텍스트에 업체 이름과 주소 만 추가합니다.웹 사이트를 사용할 수있는 경우 팝업 텍스트에도 포함됩니다.

이 기능에서인수는 모든 마커에 대해 동일한 크기를 사용합니다.마커의 색상과 아이콘은add_markers ()함수.지도에 사용 된 아이콘은 Font Awesome을 통해 액세스되었습니다.접두사키워드 인수는논의.아래 표는 이미지도에 추가 된 다양한 유형의 마커와 해당하는 비즈니스 카테고리를 보여줍니다.

Image for post

그만큼add_markers ()기능은 레스토랑 및 매장 데이터 프레임과 카테고리별로 분류 된 서비스 데이터 프레임의 하위 집합에서 사용되었습니다.아래 예에서 아키텍처 서비스에 해당하는 행은 ‘아키텍트’데이터 프레임으로 들어갑니다.그런 다음 데이터 프레임에서 함수가 호출되었고 마커에는 생도 파란색 ‘건물’아이콘이 주어졌습니다.

지도 탐색

다음은 현재지도의 모양과 탐색 방법에 대한 미리보기입니다.

Image for post

대화 형지도가 호스팅됩니다.여기.원하는 지역을 확대하고 비즈니스 마커를 클릭하여 팝업 정보를 확인하여 자유롭게 탐색하십시오.

결론

이 기사에서는 보스턴 지역에서 흑인 소유 기업의 대화 형지도를 만드는 과정을 검토했습니다.이 프로젝트의 전체 코드를 보려면GitHub 저장소.

당신은 또한 따라야합니다블랙 비즈니스 지원, 기여자는 대화 형지도에 미국 전역의 흑인 소유 기업을 표시 할 계획입니다.현재 웹 사이트에는 Black 비즈니스 소유자가 비즈니스가 시작되면지도에 포함 할 비즈니스 정보를 제출할 수있는 옵션이 있습니다.

블랙 소유 기업을 지원하는 것은 목록과지도를 만드는 것 이상으로 쉽게 찾을 수 있습니다.이와 같은 리소스는 특히 어려운 경제 시대와 그 이후에 모두 귀하의 달러를 지원할 흑인 소유 기업을 찾는 데 실제로 사용되는 경우에만 실제 가치를 갖습니다.

8 Crucial Mistakes Holding You Back From Getting a Programming Job -번역

프로그래밍 직업을 얻는 데 방해가되는 8 가지 중요한 실수

6 번. 당신은 당신보다 더 재능있는 척

Photo Credit to Andrea Piacquadio via Pexels

이 기사를 읽고 있다면 프로그래밍 작업에 따른 큰 이점을 잘 알고 계실 것입니다.프로그래머에게 높은 급여,취업 시장 확대,흥미로운 기회.

또한 고용주가 노련하고 자격을 갖춘 재능있는 프로그래머를 갈망하고 있다는 것도 알고 있습니다.DAXX 블로그2020 년에는 140 만 개의 미충족 일자리가 있지만 컴퓨터 공학 졸업생은 40 만 명에 불과할 것이라고 썼습니다.물론 더 많은 취미 코더 나 부트 캠프 프로그래머가 이러한 순위 중 일부를 채울 수 있지만 전반적으로 일자리에 대한 수요가 프로그래머 공급을 훨씬 능가합니다.

그게 뭐야t는 자신을 숙련 된 프로그래머 중 한 명으로 생각할 때 더욱 실망 스럽지만 여전히 프로그래밍 직업을 얻을 수 없습니다.

요즘에는 코딩이나 프로그래밍을 배우는 데 도움이되는 온라인 자료가 너무 많아서 빠르게 일자리를 얻는 데 중점을 둡니다.그러나 이러한 지름길은 프로그래밍 직업을 얻는 여정을 시작하는 데 도움이 될 수 있지만 그 과정에서 경력 발전을 방해하는 요소이기도합니다.

필요한 기술이 있다고 생각하지만 여전히 프로그래밍 작업을 할 수 없다면 이러한 8 가지 실수 중 하나에 빠질 수 있습니다.좋은 소식은 모두 고칠 수 있다는 것입니다.하루가 끝나면 코딩 작업을 얻기위한 유일한 전제 조건은 코딩 작업을 얻고 자하는 욕구입니다.그게 있으면 다른 모든 것이 당신의 손 안에 있습니다.

목차 :

1. 컴퓨터 과학의 기초를 마스터하지 않았습니다.
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
2. 자신이 문화에 적합하다는 것을 보여주는 방식으로 자신을 표현하지 않습니다.
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
3. 좋은 면접 기술을 무시하고 있습니다.
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
4. 당신은 경험이 없습니다
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
5. 모든 것을 마스터하려고합니다.
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
6. 당신은 당신보다 더 재능있는 척하고 있습니다
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
7. 배우고 싶은 것을 보여주지 않았습니다.
이것이 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
8. 자동 필터를 무시하고 있습니다.
이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유
이 문제를 해결하는 방법
왜 프로그래밍 직업을 얻을 수 없는지에 대한 최종 생각

1. You haven’t mastered the fundamentals of computer science.

집중하는 대신 부트 캠프에서 코딩을 배우는 많은 사람들온라인 컴퓨터 과학 학습, 단계를 건너 뛰고 시간을 들여 제대로 수행하지 마십시오.

이 부트 캠프는 특정 기간 동안 매우 구체적인 기술을 습득하도록 설계되었습니다.그들은 컴퓨터 과학의 토대 (알고리즘, 컴퓨터 아키텍처 및 하드웨어, 데이터 구조, 데이터베이스, 계산 이론)를 가르치는 것이 아닙니다.

이 코스가 당신을 속이려고한다는 의미는 아닙니다.그들의 목적은 대부분의 엔트리 레벨 직책에 필요한 최소한의 코딩 기술을 가르치는 것입니다.목적이 더 복잡한 프로그래밍 작업을 얻는 목표와 일치하지 않는 경우도 있습니다.

인터넷에 더 많은 교육 자료가 올라감에 따라 전통적인 학위없이 코딩 직업을 얻을 가능성이 점점 더 커지고 있습니다.즉, 더 많은 컴퓨터 과학 초보자가 8 주 동안 Python으로 부트 캠프를 듣게되는데, 이는 초보자도 쉽게 배울 수 있으며 즉시 프로그래밍 작업을 할 수 없을 때 좌절감을 느끼게됩니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

우리의 사고 실험을 계속하고 이력서에 Python 코드를 작성할 수 있다고 진실하게 말합시다.이것은 흥미 진진한 스타트 업, 즉 당신의 꿈에서 인터뷰를 할 수있는 기회가 될 것입니다.인터뷰에서 그들은 알고리즘에 대한 기본적인 질문을 할 것이고 당신은 완전히 당황 할 것입니다.

이러한 작업 응용 프로그램은 “데이터 구조의 기본 사항을 이해해야합니다”라고 명백하게 말하지는 않지만 이는 암시 적이기 때문입니다.컴퓨터 공학을 배우는 전통적인 경로는 언어를 배우기 전에 기초를 가르쳐 주므로 나중에 배울 기술을보다 효과적으로 해석하고 적용 할 수 있습니다.

당신을 고용하는 사람들은 단지 파이썬 전문가를 찾는 것이 아닙니다.그들은 그 일을 완전히 할 수있는 사람을 원합니다.작업을 수행하는 데 필요한 기본적인 이해가 있는지 또는 Python 코드를 암기했는지 즉시 알 수 있습니다.이것은 프로그래밍 작업을 할 수 없다는 것을 의미 할 수있는 일반적인 실수입니다.

이 문제를 해결하는 방법

부트 캠프 나 과정에 이미 시간과 비용을 투자했다면 투자를 최대한 활용하기 위해 학교로 돌아갈 필요가 없습니다.대신 기본 목록을 작성하고 연구하십시오.이렇게하면 필수 사항에 얽매이지 않고 어떤 언어 나 과정을 수강하던 기존 지식을 활용할 수 있습니다.

빌딩 블록을 배우는 데 도움이되는 유료 및 무료 온라인 리소스가 많이 있습니다.학위, 코스 또는 부트 캠프에서 기초를 습득하든 하나의 틈새 측면에 초점을 맞춘 단일 코스를 수행하고 취업을 기대할 수 없습니다.

2. 자신이 문화에 적합하다는 것을 보여주는 방식으로 자신을 표현하지 않습니다.

개인적으로 제가 대학을 졸업하고 데이터 사이언스 직업을 가지게 된 이유 중 하나는 다른 많은 사람들처럼 판매를 싫어했기 때문입니다.하지만 모든 사람이 판매를 싫어하는 반면, 취업 지원을 할 때는 지원 프로세스의 모든 단계에서 자신을 판매하는 방법을 알아야합니다.프로그래밍 작업을 할 수 없다면 신청 과정에서이 부분을 무시하고 있기 때문일 수 있습니다.

고정 관념은 당신을 코딩 작업에 고용하려는 회사는 당신의 기술적 인 부분에만 신경을 쓰지만 사실이 아니라는 것입니다.코딩 할 수있는 언어, 이해하는 컴퓨터 과학의 기초, 당신이 에이스 인터뷰 질문과 함께 그들은 또한 중요한 측면 인 문화 적합성을 살펴볼 것입니다.

구직 시장은 활짝 열려 있지만, 고용주는 코딩에 능숙 할뿐만 아니라 팀과 회사 전체에 좋은 도움을 줄 사람을 원합니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

프로그래머는 코딩 프로젝트가 끝날 때까지 차갑고 어두운 지하실에 갇혀있는 강박적인 개인이라는 고정 관념을 가지고 있습니다.풀 스택 웹 개발자 인 Charlotte Bone은주제에 대한 그녀의 블로그 게시물“프로그래머들은 밤낮으로 어두운 방에서 코딩하는 것 이상을 좋아하지 않는다”는 생각은 해로운 고정 관념입니다.

프로그래머가되고 싶지만 그 고정 관념에 맞지 않는다고 느끼지만 여전히 고용주의 척을해야한다고 느끼기 때문에 장애물이 될 수 있습니다.또는 그 개념을 충족한다면 자신의 일부를 보여 주지만 고용주가 코딩 기계를 찾는 것이 아니라 직원을 찾는다는 사실을 잊을 수 있습니다.프로그래밍 직업을 구할 수 없다면 자신의 성격을 어떻게 표현하고 있으며 대상 회사와 어떻게 어울리는 지 생각해보십시오.

이 문제를 해결하는 방법

사실 프로그래머와 코더를 포함한 대부분의 사람들은 코딩 기계가 아닙니다. 우리는 코드 작성 외에 관심과 취미가있는 실제 사람입니다.중요한 것은 이력서와 인터뷰 중에 기술적으로 유능 할뿐만 아니라 문화에 적합하다는 것을 분명히하는 방식으로이를 이력서에 표시하는 것입니다.프로그래밍 작업을 할 수 없다면 이력서가 프로그래밍 기술 만보고 있기 때문일 수 있습니다.

열정, 참여 및 호기심을 보이십니까?어떤 과외 활동을 했습니까?기술 및 문화적 관점에서 필요한 것을 증명하기 위해 기술을 패키지화하려면 어떻게해야합니까?

잠재적 인 미래 고용주와 현재 직원이 보여주는 비 기술적 특성을 조사하는 데 시간을 투자하십시오.이를 통해 기술 측면과 문화적 측면 모두에서 자신을 호의적으로 표현할 수있는 가장 강력한 기회를 얻을 수 있습니다.

3. 좋은 면접 기술을 무시하고 있습니다.

비슷한 맥락에서 코딩 작업을 할 수 없다면 일반적이고 중요한 인터뷰 기술을 무시하고있을 수 있습니다.

이력서가 완벽하더라도 인터뷰에서 질문에 답하더라도 기계가 아닌 인간으로 평가 될 것이라는 점을 기억하는 것이 중요합니다.시선을 유지하고, 자신감을 표현하고, 면접관과의 관계를 형성하는 것과 같은 부드러운 기술은 여전히 중요합니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

프로그래밍 작업을 할 수없는 일부 사람들은 종이에 작업을 완료하는 데 필요한 모든 기술을 가지고 있기 때문에 지쳐 있습니다.그러나 인터뷰는 또한 당신이 다른 사람들과 어떻게 일하고 얼마나 잘 의사 소통 할 수 있는지에 대한 시험이기도합니다.

인간은 당신이 다른 사람들과 잘 어울리는 사람이 될 수 있는지 한눈에 말해주지 못합니다.하지만 우리는 우리에게 신호를 줄 수있는 몇 가지 속기를 생각해 냈습니다.그 속기는 일반적인 인터뷰 에티켓입니다.

npm의 CTO 인 Laurie Hoss,Quartz로 쓴“엔지니어의 임무는 팀과 협력하여 더 큰 것을 달성하는 것이며, 동료와 의사 소통하는 데 시간을 할애하지 않거나 할 수없는 경우 작업의 절반 만 수행하는 것입니다.”면접에서 좋은 사람의 기술을 과시하지 않는다면, 고용주는 당신이 일의 절반 만 할 수있는 코더 범주에 속한다고 생각할 수 있습니다.

이 문제를 해결하는 방법

인터뷰 단계에 이르렀지만 여전히 프로그래밍 직업을 구할 수 없다면 이것이 직업 전망에 영향을 미치는 문제라는 신호일 수 있습니다.이를 해결하기 위해 모든 인터뷰 중에 수행 할 수있는 쉬운 체크리스트가 있습니다. 이는 가상이든 직접 대면이든 관계없이 동의합니다.

  • 눈맞춤
  • 면접관에게 가족, 오후 계획, 애완 동물 등 직업과 무관 한 것에 대해 물어보십시오.
  • 자신감을 발산하십시오.이 직업에 가장 적합한 후보라고 생각하기 때문에 지원 한 것을 기억하십시오!
  • 인터뷰가 끝날 때 처음에 그들에게 말한 내용에 대해 지나가는 언급을하십시오.

이것은 면접관에게 당신이 훌륭한 코더가 아니라 좋은 면접관이고 따라서 좋은 의사 소통 자임을 보여줍니다.

4. 당신은 경험이 없습니다

이런 이유로 프로그래밍 직업을 얻을 수 없다고해서 자신을 너무 탓하지 마십시오.이것은 고용주가 게시 한 구인 목록에 의해 복합 된 문제입니다.모든 고용주는 1 년 전에 생성 된 언어에 대해 최소 5 년의 경험을 가진 코더를 필요로하는 것 같습니다.이로 인해 적용 가능한 경험 측면에서 약간의 스트레치로 간주 될 수있는 작업에 지원하는 코더가 생깁니다.

트윗 스크린 샷

표준이 높기 때문에 약간의 과장이 용서 될 수 있습니다.그러나 문제는 경험을 요구하는 직업에 지원할 때 발생하며 경험의 출처를 증명하지 못합니다.이것은 숙련 된 코더조차도 프로그래밍 작업을 할 수없는 일반적인 이유입니다.

문제는 수년간의 경험이 아무 의미가 없다는 것입니다.저는 제 여동생이 회사를 소유하고 있고 저를 해고하지 않았기 때문에 5 년 동안 Perl을 작성한 경험이있는 세계에서 가장 게으른 코더가 될 수 있습니다.나는 한 달의 경험을 가진 사람과 똑같은 기술을 가지고 있었지만 나보다 훨씬 더 진지하게 일을했던 사람이었습니다.

좋은 면접 기술과 마찬가지로 수년간의 경험에 대한 질문은“우리가해야 할 일의 75 %를 어떻게하는지 알고 계십니까?”에 대한 구직 지원의 속기 일뿐입니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

Python에서 5 년 경력의 코더를 요청한 이력서 더미를 살펴 보는 사람을 상상해보십시오.그들은 당신이 스택의 다른 모든 사람들과 마찬가지로 당신에게 5 년이 필요하다고 나열한 것을 봅니다.

겉으로는 그들의 질문에 답하신 것 같습니다.하지만 그들이 묻는 것은 여러분이 그들의 Python 문제를 해결하는 데 필요한 기술과 경험이 있는지 여부입니다.1 년 또는 5 년의 Python 경험은이 시점에서 중요하지 않습니다. 그와 동등한 경험을 가지고 있음을 보여 주어야합니다.이것은 고용주의 실제 질문에 답하는 데 도움이 될뿐만 아니라 다른 지원자들 사이에서 눈에 띄는데도 도움이됩니다.

이 문제를 해결하는 방법

아니요, 5 년의 경험이 필요하지 않습니다.그러나 프로그래밍 직업을 얻을 수 없다면, 특히 이전 업무 경험이없는 경우 미래의 직업에 관심이 있음을 입증해야합니다.재미로 어떤 프로젝트를 하셨나요?무엇을 가장 즐겼습니까?어떤 문제를 해결 했습니까?

프로그래밍에 대한 헌신을 입증 할 수있는 블로그, GitHub 저장소 또는 다른 포트폴리오가 있습니까?Ferpection의 수석 JavaScript 소프트웨어 엔지니어 인 Nathanaël Cherrier는그의 블로그 게시물개발자가 블로그를 시작해야하는 이유 :“인터넷에 글을 쓸 때 일반 개발자보다 더 눈에 띄게됩니다.누가 귀하의 게시물을 읽을 수 있기를 바라십니까?미래의 동료?일하고 싶은 멋진 회사의 채용 담당자인가요?당신이 이야기하고 싶은 회의의 연사를 선택하는위원회는?이 모든 사람들은 당신의 기술과 편집 기술에 관심을 가질 것입니다.”

경험 부족으로 프로그래밍 직업을 얻을 수없는 경우 열정을 공유하는 것은 고용주에게 필요한 일을 할 수 있음을 입증하는 좋은 방법이 될 수 있습니다.

5. 모든 것을 마스터하려고합니다.

다시 말하지만, 수년간의 경험에서 비현실적인 요구 사항과 마찬가지로 많은 회사가 언젠가는 구인 정보에 유용하게 사용될 수있는 거의 모든 잠재적 언어와 기술을 나열함으로써이 문제에 기여합니다.프로그래밍 작업을 할 수 없다면 구인 정보에 표시되는 모든 것을 마스터하려고하기 때문일 수 있습니다.

문제는 초보자 코더가 배워야한다고 생각할 수있는 수많은 프로그래밍 언어와 기술이 있다는 것입니다.

대신, 모든 핵심 컴퓨터 과학 작업을 뒷받침하는 기본 사항을 배우는 것과 함께 모든 것을 시도하는 대신 자신의 판매 가능한 측면을 마케팅해야합니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

베테랑 프로그래머가 아니라면 작업이 요구 사항에 따라 나열 할 모든 것을 마스터 할 수 없습니다.(베테랑 프로그래머라면 이미 괜찮은 직업을 가지고있을 것입니다!)

직업을 조사하는 초기 단계에 있고 프로그래밍 직업을 구할 수 없다고 걱정한다면 그들이 요구하는 모든 것을 마스터해야한다고 믿을 수 있습니다.하나 또는 두 개의 핵심 기술에 자신을 적용하는 대신 인터뷰에서 나올 수있는 모든 것에 대해 무난한 지식을 갖기 위해 자신을 얇게 퍼뜨립니다.그러나 8 개 언어의 마스터가되는 대신 각 언어에 대해 거의 알지 못합니다.

이 문제를 해결하는 방법

나는 Teresa Dietrich가 그녀의 해결책을 설명하는 방식을 좋아했습니다.그녀의 블로그 게시물“수백 명의 엔지니어를 고용하여 배운 내용은 다음 역할을 수행하는 데 도움이 될 수 있습니다.”그녀는 많은 구인 목록에 태양 아래 모든 것을 포함하는 것처럼 보이는 과장된 요구 사항이 있다고 씁니다.

프로그래밍 작업을 할 수없는 경우 그녀의 해결책은 관심있는 작업과 각 작업에 필요한 핵심 기술의 스프레드 시트를 만드는 것입니다.몇 가지 공통점을 매우 빠르게 발견 할 수 있습니다.이것은 비록 그들이 20 개의 다른 “요구 사항”을 나열하더라도 그 직업을 얻는 데 가장 도움이 될 기술에 대한 당신의 대답을 줄 것입니다.

프로그래밍 작업을 할 수없는 이유 중 하나는 모든 것을하라는 요청을 받았을 때 아주 몇 가지만 숙달 할 수 있기 때문일 수 있습니다.소음을 줄이고 이러한 회사가 찾고있는 신호를 전달함으로써 꿈의 프로그래밍 작업을 수행 할 수 있습니다.

가장 좋아하는 언어는 무엇입니까?어느 것이 가장 잘 이해합니까?이러한 답변은 어떤 종류의 직업이 기존 기술을 충족하는지, 이력서와 인터뷰 중에 이러한 기술을 마케팅하는 방법 측면에서 올바른 방향을 제시하는 데 도움이됩니다.

6. 당신은 당신보다 더 재능있는 척하고 있습니다

물론, 프로그래밍 직업을 얻지 못하는 사람들은 모든 점을 다루기 위해 진실을 밝히기 위해 필사적 일 수 있습니다.때로는 비현실적인 구인 목록을 사용하면 예상 할 수 있습니다.그러나 실제로 프로그래밍 작업을 중단 할 수 있습니다.

좋은 소식은 고용주가 유능한 직원을 원하지만 이것이 직업 요구 사항에 나열된 모든 것을 수행해야한다는 의미는 아닙니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

이력서와 자기 소개서를 맞춤화 할 때, 그들이 요구하는 모든 것의 주인 인 것처럼 보이도록 진실을 늘려 비현실적인 요구 사항을 충족 시키려고합니다.면접관은 당신의 이력서에서 그것을 볼 수있을 것이고 당신이 면접을 받더라도 그들은 확실히 그것을 발견 할 것입니다.

분명하게 말하면 숙련 된 프로그래머와 면접관을 속일 수는 없습니다.구인 정보를 얻을 수없는 것처럼 보일 수 있지만 이것이 자신이 가지고 있지 않은 경험, 지식 또는 기술을 더 많이 가진 척해야한다는 의미는 아닙니다.가장 좋은 시나리오는 제대로 할 수없는 스트레스가 많은 일에 고용되는 것입니다.최악의 시나리오는 프로그래밍 직업을 구할 수없고 자격이없는 직업에 지원하는 데 시간을 낭비하는 것입니다.

이 문제를 해결하는 방법

미래 고용주의 목표를 염두에 두십시오.수년간의 경험과 마찬가지로 그들은 당신이 모든 상자를 체크 할 필요가 없습니다.그들은 그저 일을 가장 잘 수행 할 수있는 사람을 고용하기를 원합니다.

입사 지원서와 면접에서 모두 알고있는 것을 고수함으로써 자신의 강점을 발휘할 수 있습니다.자신의 기술과 한계에 대해 정직하십시오.그들이해야 할 일을 할 수 있다는 것을 증명할 수 있다면 기회가있을 것입니다.

두 명의 후보자를 만나는 고용주를 생각해보십시오. 한 명은 자신이 할 수없는 일을 할 수 있다고 말하고 다른 한 명은 현재의 기술 범위를 넘어서면서 지난 1 년간 기술을 어떻게 성장 시켰는지 보여줍니다.후자는 고용주에게 훨씬 더 매력적입니다.프로그래밍 작업을 할 수없는 경우 가능한 한 현실로 유지하기 위해 주장하는 기술을 축소하는 방법을 고려하십시오.

7. 배우고 싶은 것을 보여주지 않았습니다.

흥미로운 점은LinkedIn Workplace Learning의 2020 년 보고서가장 수요가 많은 기술은 기술적 인 기술이 아니라 소프트 한 기술이라는 것을 보여줍니다.그 이유는 기술적 인 기술이 빠르게 노화되기 때문이라고 가정합니다.중요한 기술은 다음 해에 중복됩니다.컴퓨터 과학의 기초와 같은 소프트 기술은 고용주에게 매력적일 수있는 다른 모든 기술을 뒷받침합니다.

이는 학습 적성이 당신이 보여줄 수있는 다른 어떤 기술보다 더 중요하다는 것을 의미합니다.대부분의 고용주는 새로운 기술 역량이 해마다 필요할 것이라고 확신 할 수 있기 때문에 최소한의 교육 만 있으면되는 후보자를 고용하기를 원합니다.이상적인 후보자가 되려면 핵심 기술과 주요 재능을 입증 한 후 여전히 학습에 관심이 있음을 입증하십시오.프로그래밍은 정적 인 직업이 아닙니다.새로운 기술, 언어 및 기술이 항상 나옵니다.최고의 위치를 유지하려면 역동적이어야합니다.

이것이 직업을 얻을 수 없다는 것을 의미하는 이유

당신이 매년 경험하고 그들이 요구하는 모든 언어를 가지고 있으며 컴퓨터 과학의 기초에 대한 확고한 이해를 보여줄 수있는 완벽한 후보라고 가정 해 봅시다.모든 것을 선호하더라도 여전히 프로그래밍 직업을 얻을 수 없다면 배우고 싶은 것을 보여주지 않았기 때문일 수 있습니다.

이력서가 여전히 새로운 기술을 배우는 데 관심이 있음을 입증하지 못하고 인터뷰 단계에서 지식을 습득하는 것에 대한 열정을 보이지 않으면 오늘 완벽한 후 보라 할지라도 내일은 쓸모가 없게 될 것입니다.

코딩이나 프로그래밍 분야에서 경력을 쌓고 싶은 사람들은 증명하기 쉽기 때문에 어렵고 기술적 인 기술에 집중할 수 있습니다.그러나 배우고 자하는 욕구를 보여주는 것이 나중에 생각하는 것이라면 이것이 프로그래밍 직업을 얻을 수없는 이유 일 수 있습니다.

이 문제를 해결하는 방법

다행히 대부분의 코더와 프로그래머는 배우기를 좋아합니다.특히 전통적인 컴퓨터 공학 학위를받지 못했다면 그래야합니다.여기에서 과정을 수강하거나 수료증을 획득함으로써보다 색다른 배경이 도움이 될 수 있습니다. 이는 학습에 대한 헌신을 보여주는 좋은 방법 중 하나입니다.

최신 프로그래밍 트렌드를 살펴 보는 것도 좋은 생각입니다.완전히 숙달 된 것을 보여줄 필요는 없으며, 실제로 시간 낭비가 될 것입니다.하지만 프로그래밍 트렌드에 대한 관심을 보여줌으로써 컴퓨터 과학 분야에서 배우고 최신 상태를 유지하는 것을 즐길 수 있습니다.

마지막으로, 컴퓨터 과학 학습에 대한 열정 만 보여 주기만해서는 안됩니다.그 밖에 무엇을 배우는 것을 좋아합니까?악기, 구어, 수채화 기법 등은 모두 학습에 대한 사랑을 보여주는 방법이 될 수 있습니다.

8. 자동 필터를 무시하고 있습니다.

이 실수 목록에 해당하는 것이없고 여전히 프로그래밍 작업을 할 수 없다면 기술이 당신에게 불리하게 작용하고 있기 때문일 수 있습니다.프로그래밍 또는 코딩 작업에 지원하는 대부분의 사람들은 매우 기술적 인 수준이지만 채용 프로세스가 자동화되어 있다는 사실을 간과하기 쉽습니다.취하다예를 들어 아마존, 2018 년에 채용 AI가 실수로 여성에 대한 편견을 보이고 있다는 사실이 밝혀지면서 문제를 겪었습니다.많은 자격을 갖춘 개인은 자동화 결함으로 인해 자신의 이력서를 보지 못했습니다.

문제가있는 AI를 제쳐두고 HR 또는 채용 담당자가 적절한 수의 후보자에게 작업 부하를 최소화하기 위해 필터를 적용했기 때문에 애플리케이션이 여러 번 표시되지 않는다는 사실을 고려하십시오.키워드를 사용하여 목록을 줄임으로써, 그들은 사람이보기도 전에 적용 할 수없는 이력서를 찾아 내기 위해 최선을 다합니다.

이것이 프로그래밍 직업을 얻을 수 없다는 것을 의미하는 이유

재능있는 많은 프로그래머들은 키워드에 대한 이력서를 최적화하는 데 능숙하지 않습니다.그것은 그 자체로 기술입니다.HR의 일을 더 쉽게 만들 수는 있지만 프로그래밍 작업을 할 수없는 이유는 자신의 결함 때문이 아니라 이력서에 올바른 순서로 올바른 단어를 넣지 않았기 때문입니다..

안타깝게도 프로그래밍 작업에 어려움을 겪고 있다면 이러한 자동화 된 필터를 무시하고 타고난 재능이 빛날 것이라고 가정 할 수 없습니다.좋든 싫든, 이상적인 프로그래밍 직업을 얻으려면 게임을 조금해야 할 수도 있습니다.

이 문제를 해결하는 방법

이것이 프로그래밍 작업을 할 수없는 이유라고 생각되는 경우, 기계에 의해 간과되지 않도록 두 가지 방법이 있습니다.

첫째, 가장 분명한 것은 키워드에 대한 이력서를 최적화하는 것입니다.입사 지원서를 다시 한 번 살펴보고 회사의 말에서 자신의 이력서에 포함시킨 모든 항목을 선택하십시오.밸런스 커리어의블로그 게시물이력서 키워드는 또한 이력서가 회사의 브랜드를 반영하도록하는 것이 좋습니다. 이것이 바로 회사의 브랜드입니다. 따라서 그들의 LinkedIn 페이지와 현재 직원의 LinkedIn을 확인해보세요.

두 번째 방법은 덜 직관적입니다. 채용 담당자도 인간임을 기억하십시오.이력서를 쌓아 올려서 보길 바라거나, 더 나아가서 비슷한 직책을 가진 현재 직원, 채용 관리자 또는 상사가 될 수있는 사람을 찾아 짧은 LinkedIn을 보낼 수 있습니다.메시지.역할에 대한 열정을 표현하고, 현재 업무에 대해 질문하거나, 방금 지원했고 답변을 기다리고 있다는 사실을 알려주세요.

이력서가 나오면 자신의 이름이 이미 익숙한 지 확인하는 방법입니다.인간의 손길이 먼 길을가는 것을 잊지 마십시오.

왜 프로그래밍 직업을 얻을 수 없는지에 대한 최종 생각

두 가지 잠재적 단계에서 거절 당할 수 있습니다 : 면접을 받고 면접 후에 구인을받는 것입니다.프로그래밍 작업을 할 수없는 경우 기회를 극대화하려면 어려움을 겪고있는 부분을 확인하고 관련 팁을 적용하세요.

전반적으로 조언은 이것으로 요약됩니다. 인간의 기술은 여전히 관련이 있다는 것을 기억하십시오.거짓말하지 마세요.당신의 강점을 고수하십시오.그리고 먼저 기본 사항을 다룹니다.

그렇게 할 수 있다면 프로그래밍 작업을 할 수없는 주된 이유를 해결 한 것입니다.

계속해서 일하고 기억하세요. 고용주는 당신이 좋은 일을하려는 것만 큼 좋은 프로그래머를 위해 필사적입니다.당신이해야 할 일은 그들이 꿈꿔 왔던 후보자임을 그들에게 보여주는 것뿐입니다.

원래 게시 된 위치https://qvault.io2021 년 1 월 18 일

Largest Rectangle in a Matrix -번역

행렬에서 가장 큰 직사각형

프로그래밍 기술을 결합하는 방법

일반적으로 코딩과 일상 생활에서 더 많은 경험을 쌓을 때, 저에게 눈에 띄는 것 중 하나는 해결해야 할 문제가있을 때마다 매우 직관적 인 해결책이 있다는 것입니다.때로는이 솔루션이 효율적이고 때로는 매우 차선책입니다.이것은 알고리즘에서 특히 두드러집니다. 알고리즘은 종종 실제 문제의 개념화이기 때문에 알고리즘을 통해 문제의 필수 요소가 유지되어 문제를 직접 해결할 수 있습니다.

가장 큰제 생각에는 행렬의 직사각형이 그러한 문제 중 하나입니다.다음은 문제에 대한 간략한 설명입니다.

문제

빨간색과 파란색 점으로 된 보드가 있는데 파란색 점으로 형성된 가장 큰 직사각형을 찾고 싶습니다.

(작가 이미지)

이 예에서는 파란색 점으로 구성된 가장 큰 직사각형의 크기가 8이라는 것을 쉽게 알 수 있습니다.

하지만이를 알고리즘 방식으로 수행하는 방법을 알아 봅시다.

솔루션 # 1

간단하게하는 방법

이 문제를 처음으로 시도했을 때 나는 스스로 생각했습니다.

글쎄요, 아마도 행렬의 모든 점을 반복해야 할 것 같습니다. 그리고 각 점에서 그 점을 포함하는 가장 큰 직사각형을 찾아야합니다.이 사각형을 이미 찾은 사각형의 크기와 비교하겠습니다.새 것이 더 크면 유지하고 그렇지 않으면 다음 지점으로 이동합니다.

훌륭하게 들리지만 문제가 있습니다.특정 점을 포함하는 가장 큰 직사각형을 어떻게 찾습니까?이 문제를 해결하는 데 도움이 될만한 것은 없습니다.

현재 지점이 왼쪽 상단 모서리 인 가장 큰 직사각형을 찾으려면 어떻게해야합니까?나는 이것이 더 관리하기 쉬운 문제라고 생각합니다.

이를 파악하기 위해 현재 지점의 오른쪽에있는 각 지점을 반복하고 각 지점에서 파란색 점의 최대 높이를 찾습니다. 현재 지점의 높이보다 작 으면현재 포인트 높이를 새 높이로 업데이트하고 새 사각형의 크기를 찾습니다. 더 큰 사각형이면 최대 크기를 업데이트합니다.

이 절차를 예제에 적용 해 보겠습니다.

내가 (1, 0) 지점까지 반복했다고 가정합니다.

(작가 별 이미지)

내 현재 포인트의 높이는 2이며,이 정보가 주어지면 오른쪽 상단 모서리가 (1, 0) 인 가장 큰 직사각형 인 2입니다.

(1, 0) : 높이 = 2, max_rectangle = 2.

오른쪽의 모든 지점을 반복합니다.

점 (2, 0)의 높이는 3이지만 시작점보다 크므로 높이는 여전히 2입니다. 그러나 이제 우리는 크기가 2 * 2 = 4 인 직사각형을 가질 수 있음을 알고 있습니다.

(2, 0) : 높이 = 2, max_rectangle = 4

Point (3, 0)의 높이는 1이고 현재 높이보다 작으므로 현재 높이를 1로 업데이트하면 만들 수있는 사각형은 1 * 3 = 3이지만 현재 최대 값은 4이므로 무시합니다.그것:

(3, 0) : 높이 = 1, max_rectangle = 4

나머지 포인트에 대해 동일한 프로세스를 수행합니다.

(4, 0) : 높이 = 1, max_rectangle = 4

(5, 0) : 높이 = 1, max_rectangle = 5

오른쪽 상단 모서리가 (1, 0)이고 크기가 5 인 가장 큰 직사각형을 찾습니다.

이것을 코드에 넣어 보겠습니다.

def find_max001 (행렬) :

너비 = len (matrix [0])
높이 = len (행렬)

# a 지점에서 최대 너비와 최대 높이
# 암기 및 동적 프로그래밍 사용
max_matrix = [[행렬에있는 행에 대해 없음]]
def get_max (i, j) :
i & gt; = 너비 인 경우 :
0, 0 반환
elif j & gt; = 높이 :
0, 0 반환
elif max_matrix [j] [i]가 None이 아닙니다.
max_matrix [j] [i] 반환
elif 행렬 [j] [i] == 0 :
max_matrix [j] [i] = (0, 0)
max_matrix [j] [i] 반환

max_down = get_max (i, j + 1)
max_right = get_max (i + 1, j)

max_matrix [j] [i] = (최대 _ 오른쪽 [0] + 1,
max_down [1] + 1)
max_matrix [j] [i] 반환

max_rect = 0
i 범위 (너비) :
범위 (높이)에있는 j의 경우 :
rect = get_max (i, j)
cur_max = rect [1]
k 범위 (1, rect [0])의 경우 :
cur_max = min (cur_max, get_max (i + k, j) [1])

max_rect = max (max_rect, cur_max * rect [0])

max_rect 반환
def problem003 (솔버) :

m001 = [
[1, 1, 1, 1, 1, 1],
[0, 1, 1, 0, 1, 1],
[0, 0, 1, 0, 1, 1],
[0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0]
]

res1 = 솔버 (m001)
print (f'res1 : {res1} ')
def test003 () :
솔버 = find_max001
problem003 (솔버)
test003 ()
# res1 : 8

Performance of Solution #1

알고리즘의 복잡성은 무엇입니까?

각 지점을 반복하기 때문에 복잡성은 적어도 w * h입니다.운 좋게도 우리는 메모 화 및 동적 프로그래밍 기술을 사용하여 각 지점에서 높이를 찾을 수 있으므로 복잡성을 추가하지 않습니다.

각 지점에서 행렬의 너비를 반복하여 해당 지점에서 가장 큰 직사각형을 찾습니다. 이것은 복잡성을 w * h * w로 느리게합니다.

따라서 복잡성은 다음과 같습니다. O (w² * h)

또한 맵을 사용하여 각 지점의 너비와 높이를 저장하기 때문에 :

메모리 사용량은 O (w * h)입니다.

솔루션 # 2

알고리즘을 개선하는 방법은 무엇입니까?

복잡도에서 w² 항을 줄이는 방법이 있습니까?

밝혀졌습니다.

예를 다시 살펴 보겠습니다.

(작가 별 이미지)

이제 첫 번째 행을 반복한다고 가정합니다.

(0, 0), (1, 0), (2, 0)에서 높이는 1, 2, 3으로 계속 증가합니다. 목록을 유지합니다.

[(0, 0 : 1), (1, 0 : 2), (2, 0 : 3)]

(3, 0) 위치에서 높이가 1로 떨어집니다.이 새로운 정보는 우리에게 무엇을 알려 줍니까?

사실 꽤 그렇습니다.이 정보가 주어지면 높이가 3 인 위치 (2, 0)에 왼쪽 상단 모서리가있는 직사각형은 최대 크기가 3 만 될 수 있습니다.

또한 높이가 2 인 위치 (1, 0)에 왼쪽 상단 모서리가있는 직사각형은 최대 크기가 4 만 될 수 있다고 확신 할 수 있습니다.

두 점을 처리 한 후 영구적으로 제거 할 수 있지만 (1, 0) (참고, (3, 0)이 아님)에 높이 1로 새 점을 추가해야합니다.

[(0, 0 : 1), (1, 0 : 1)]

기본적으로 우리가하는 일은 (2, 0)과 (1, 0)의 높이를 (3, 0)의 높이와 같게 트리밍하는 것입니다.

이 길을 따라 줄 끝까지 이동하면 더 이상 높이가 떨어지지 않습니다.

[(0, 0 : 1), (1, 0 : 1), (5, 0 : 4), (4, 0 : 4)]

그런 다음 나머지 행을 처리 할 수 있습니다.

(5, 0) max_rectangle = 4

(4, 0) max_rectangle = 4 * 2 = 8

(1, 0) max_rectangle = 1 * 5 = 5

(0, 0) max_rectangle = 1 * 6 = 6

따라서 첫 번째 행을 처리 한 후의 max_rectangle은 8이고 6 포인트 만 반복했습니다!이것은 알고리즘의 복잡성이 이제 w * h라는 것을 의미합니다!

다음은 코드의 알고리즘입니다.

컬렉션에서 가져 오기 deque

def find_max002 (매트릭스) :

너비 = len (matrix [0])
높이 = len (행렬)

# 최대 수심
max_matrix = [[행렬에있는 행에 대해 없음]]

def get_max (i, j) :
i & gt; = 너비 인 경우 :
0, 0 반환
elif j & gt; = 높이 :
0, 0 반환
elif max_matrix [j] [i]가 None이 아닙니다.
max_matrix [j] [i] 반환
elif 행렬 [j] [i] == 0 :
max_matrix [j] [i] = (0, 0)
max_matrix [j] [i] 반환

max_down = get_max (i, j + 1)
max_right = get_max (i + 1, j)

max_matrix [j] [i] = (최대 _ 오른쪽 [0] + 1, 최대 _ 아래 [1] + 1)
max_matrix [j] [i] 반환

def get_rect (stack, j) :
cur_idx = stack.pop ()
cur_max = cur_idx [1] * (j-cur_idx [0])
print (f "cur_max at {cur_idx [0]} : {cur_max}")
cur_max 반환

max_rect = 0
i 범위 (너비) :

# 스택으로 알고리즘 구현
스택 = deque ()
stack.append ((-1, 0))
범위 (높이)에있는 j의 경우 :
rect = get_max (i, j)
cur_width = rect [0]
cur_idx = j
스택 [-1] [1] & gt;cur_width :
cur_idx = 스택 [-1] [0]
max_rect = max (max_rect,
get_rect (스택, j))
stack.append ((cur_idx, cur_width))

동안 len (stack) & gt;1:
max_rect = max (max_rect, get_rect (stack, height))

max_rect 반환
def test004 () :

솔버 = find_max002

problem003 (솔버)
test004 ()
# res1 : 8

(3, 0)에 도달 한 후 포인트 (2, 0) 및 (1, 0) 제거를 구현하기 위해 스택 데이터 구조를 사용하여 포인트를 효율적으로 푸시하고 팝합니다.

솔루션 # 2의 복잡성

앞서 언급했듯이 솔루션 # 1을 개선하여 각 지점에서 더 이상 오른쪽에있는 나머지 지점을 반복 할 필요가 없습니다.복잡성이 다음과 같이 향상됩니다. O (w * h)!

메모리 사용량은 동일하게 유지됩니다 : O (w * h).

이것에서 무엇을 얻을 수 있습니까?

알고리즘과 코딩 기술 외에

알고리즘에는 많은 변형이있을 수 있으며, 가장 먼저 생각 해낸 알고리즘은 일반적으로 가장 효율적이지 않습니다.복잡성 분석 및 프로그래밍 기술에 대한 이해는 큰 차이를 만들 수 있습니다.이 실현의 중요성은 프로그래밍뿐만 아니라 삶의 거의 모든 것을 수행하는 데까지 확장됩니다. 삶의 모든 것이 알고리즘이기 때문입니다.

Data Science Learning Roadmap for 2021 -번역

2021 년 데이터 과학 학습 로드맵

데이터 과학 적용 기술을 습득하기위한 자신 만의 학습 트랙 구축

Image for post

날짜를 제외하고는 아무것도 변하지 않지만 새해는 모든 사람에게 새로운 시작의 희망을 채 웁니다.약간의 계획, 잘 계획된 목표 및 학습 로드맵을 추가하면 성장으로 가득 찬 1 년을위한 훌륭한 레시피를 만들 수 있습니다.

이 게시물은 귀하에게학습 프레임 워크, 리소스 및 프로젝트 아이디어데이터 과학의 전문성을 보여주는 견고한 작업 포트폴리오를 구축합니다.

부인 성명:
정의 된 로드맵은 데이터 과학에 대한 저의 작은 경험을 바탕으로 준비되었습니다.이것은 전체적이고 최종적인 학습 계획이 아닙니다.로드맵은 특정 분야 / 연구 분야에 더 적합하도록 변경 될 수 있습니다.또한 개인적으로 파이썬을 사용하는 것을 선호하기 때문에 이것은 파이썬을 염두에두고 만들어졌습니다.

학습 로드맵이란 무엇입니까?

내 겸손한 의견으로는 리어ing 로드맵은 다음과 같은 세부 정보가 포함 된 다단계 스킬 맵을 도표화하는 커리큘럼의 확장입니다.연마하고 싶은 기술,어떻게각 수준에서 결과를 측정하고기법각 기술을 더 익히기 위해.

내 로드맵은 실제 응용 프로그램의 복잡성과 공통성을 기반으로 각 수준에 가중치를 할당합니다.또한 초보자가 연습 / 프로젝트를 통해 각 레벨을 완료하는 데 걸리는 예상 시간을 추가했습니다.

다음은 업계에서 복잡성과 적용 순서로 높은 수준의 기술을 묘사하는 피라미드입니다.

Image for post

이것은 우리 프레임 워크의 기반이 될 것입니다. 이제 우리는보다 구체적이고 측정 가능한 세부 사항으로 프레임 워크를 완성하기 위해 이러한 각 계층을 심층 분석해야합니다.

특이성은 각 계층과 리소스에 중요한 주제를 등록하여 해당 주제를 마스터하는 데 도움이됩니다.

학습 한 주제를 여러 실제 프로젝트에 적용하여이를 측정 할 수 있습니다.숙련도를 측정하는 데 사용할 수있는 몇 가지 프로젝트 아이디어, 포털 및 플랫폼을 추가했습니다.

Imp 참고 : 한 번에 하루 씩, 하루에 비디오 / 블로그 / 장을 하나씩 가져 가십시오.커버 할 광범위한 스펙트럼입니다.자신을 압도하지 마십시오!

아래부터 시작하여 이러한 각 계층에 대해 자세히 살펴 보겠습니다.

1. 프로그래밍 또는 소프트웨어 공학

(예상 시간 : 2-3 개월)

첫째, 건전한 프로그래밍 기술이 있는지 확인하십시오.모든 데이터 과학 작업 설명은 적어도 하나의 언어에 대한 프로그래밍 전문 지식을 요구합니다.

구체적인 주제는 다음과 같습니다.

  • Common data structures(data types, lists, dictionaries, sets, tuples), writing functions, logic, control flow, searching and sorting algorithms, object-oriented programming, and working with external libraries.
  • SQL scripting: Querying databases using joins, aggregations, and subqueries
  • Comfortable with using the Terminal, version control in Git, and using GitHub

Python 용 리소스 :

  • learnpython.org [free]— a free resource for beginners. It covers all the basic programming topics from scratch. You get an interactive shell to practice those topics side-by-side.
  • Kaggle [free]— a free and interactive guide to learning python. It is a short tutorial covering all the important topics for data science.
  • Python Course by freecodecamp on YouTube[free] — This is a 5-hour course that you can follow to practice the basic concepts.
  • Intermediate python [free]— Another free course by Patrick featured on freecodecamp.org.
  • Coursera Python for Everybody Specialization[fee] — this is a specialization encompassing beginner-level concepts, python data structures, data collection from the web, and using databases with python.

힘내

  • Guide for Git and GitHub[free]: complete these tutorials and labs to develop a firm grip over version control. It will help you further in contributing to open-source projects.

SQL

많은 문제를 해결하고 최소 2 개의 프로젝트를 구축하여 전문성을 측정하십시오.

  • Solve a lot of problems here: HackerRank(beginner-friendly), LeetCode(solve easy or medium-level questions)
  • Data Extraction from a website/API endpoints — try to write python scripts from extracting data from webpages that allow scraping like soundcloud.com. Store the extracted data into a CSV file or a SQL database.
  • Games like rock-paper-scissor, spin a yarn, hangman, dice rolling simulator, tic-tac-toe, etc.
  • Simple web apps like youtube video downloader, website blocker, music player, plagiarism checker, etc.

이러한 프로젝트를 GitHub 페이지에 배포하거나 Git 사용 방법을 배울 수 있도록 GitHub에서 코드를 호스팅하기 만하면됩니다.

2. 데이터 수집 및 랭 글링 (Cleaning)

(예상 시간 : 2 개월)

데이터 과학 작업의 중요한 부분은 문제 해결에 도움이되는 적절한 데이터를 찾는 데 집중되어 있습니다.스크래핑 (웹 사이트에서 허용하는 경우), API, 데이터베이스, 공개적으로 사용 가능한 저장소와 같은 여러 합법적 인 소스에서 데이터를 수집 할 수 있습니다.

데이터가 준비되면 분석가는 종종 데이터 프레임을 정리하고, 다차원 배열로 작업하고, 설명 / 과학적 계산을 사용하고, 데이터 프레임을 조작하여 데이터를 집계합니다.

데이터는 “실제”환경에서 사용할 수 있도록 정리되지 않고 형식이 지정되지 않습니다.Pandas와 NumPy는 더티 데이터에서 즉시 분석 가능한 데이터로 이동할 수있는 두 개의 라이브러리입니다.

파이썬 프로그램 작성에 익숙해지면 다음과 같은 라이브러리 사용에 대한 강의를 시작하십시오.판다numpy.

자원:

프로젝트 아이디어 :

  • Collect data from a website/API(open for public consumption) of your choice, collect the data, and transform the data to store data from different sources into an aggregated file or table(DB). Example APIs include TMDB, quandl, Twitter API, etc.
  • Pick any publicly available dataset; define a few set of questions that you’d want to pursue after looking at the dataset and the domain. Wrangle the data to find out answers to those questions using pandas and NumPy.

3. EDA, Business acumen and Storytelling

(예상 시간 : 2 ~ 3 개월)

마스터해야 할 다음 계층은 데이터 분석과 스토리 텔링입니다.데이터에서 인사이트를 도출 한 다음이를 간단한 용어와 시각화로 경영진에게 전달하는 것은 데이터 분석가의 핵심 책임입니다.

스토리 텔링 부분에서는 뛰어난 의사 소통 기술과 함께 데이터 시각화에 능숙해야합니다.

특정 주제 :

  • Exploratory data analysis — defining questions, handling missing values, outliers, formatting, filtering, univariate and multivariate analysis.
  • Data visualization — plotting data using libraries like matplotlib, seaborn, and plotly. Knowledge to choose the right chart to communicate the findings from the data.
  • Developing dashboards — a good percent of analysts only use Excel or a specialized tool like Power BI and Tableau to build dashboards that summarise/aggregate data to help the management in making decisions.
  • Business acumen: Work on asking the right questions to answer, ones that actually target the business metrics. Practice writing clear and concise reports, blogs, and presentations.

자원:

프로젝트 아이디어

4. Data Engineering

(예상 시간 : 4 ~ 5 개월)

데이터 엔지니어링은 빅 데이터 기반 회사의 연구 엔지니어와 과학자가 깨끗한 데이터에 액세스 할 수 있도록함으로써 R & amp; D 팀을 뒷받침합니다.그것은 그 자체로 필드이며 문제의 통계적 알고리즘 측면에만 집중하고 싶다면이 부분을 건너 뛸 수 있습니다.

데이터 엔지니어의 책임에는 효율적인 데이터 아키텍처 구축, 데이터 처리 간소화 및 대규모 데이터 시스템 유지가 포함됩니다.

엔지니어는 Shell (CLI), SQL 및 python / Scala를 사용하여 ETL 파이프 라인을 생성하고 파일 시스템 작업을 자동화하며 데이터베이스 작업을 최적화하여 고성능으로 만듭니다.또 다른 중요한 기술은 AWS, Google Cloud Platform, Microsoft Azure 등과 같은 클라우드 서비스 제공 업체의 숙련도가 필요한 이러한 데이터 아키텍처를 구현하는 것입니다.

자원:

준비 할 프로젝트 아이디어 / 인증 :

  • AWS Certified Machine Learning(300 USD) — A proctored exam offered by AWS, adds some weight to your profile(doesn’t guarantee anything though), requires a decent understanding of AWS services and ML.
  • Professional Data Engineer — Certification offered by GCP. This is also a proctored exam and assesses your abilities to design data processing systems, deploying machine learning models in a production environment, ensure solutions quality and automation.

5. Applied statistics and mathematics

(예상 시간 : 4 ~ 5 개월)

통계적 방법은 데이터 과학의 핵심 부분입니다.거의 모든 데이터 과학 인터뷰는 주로 기술 및 추론 통계에 중점을 둡니다.

사람들은 이러한 알고리즘의 작동을 설명하는 기본 통계 및 수학적 방법에 대한 명확한 이해없이 기계 학습 알고리즘 코딩을 시작합니다.

집중해야 할 주제 :

  • Descriptive Statistics — to be able to summarise the data is powerful but not always. Learn about estimates of location(mean, median, mode, weighted statistics, trimmed statistics), and variability to describe the data.
  • Inferential statistics — designing hypothesis tests, A/B tests, defining business metrics, analyzing the collected data and experiment results using confidence interval, p-value, and alpha values.
  • Linear Algebra, Single and multi-variate calculus to understand loss functions, gradient, and optimizers in machine learning.

자원:

  • [Book]Practical statistics for data science(highly recommend) — A thorough guide on all the important statistical methods along with clean and concise applications/examples.
  • [Book]Naked Statistics — a non-technical but detailed guide to understanding the impact of statistics on our routine events, sports, recommendation systems, and many more instances.
  • Statistical thinking in Python — a foundation course to help you start thinking statistically. There is a second part to this course as well.
  • Intro to Descriptive Statistics— offered by Udacity. Consists of video lectures explaining widely used measures of location and variability(standard deviation, variance, median absolute deviation).
  • Inferential Statistics, Udacity — the course consists of video lectures that educate you on drawing conclusions from data that might not be immediately obvious. It focuses on developing hypotheses and use common tests such as t-tests, ANOVA, and regression.

프로젝트 아이디어 :

  • Solve the exercises provided in the courses above and then try to go through a number of public datasets where you can apply these statistical concepts. Ask questions like “Is there sufficient evidence to conclude the mean age of mothers giving birth in Boston is over 25 years of age at the 0.05 level of significance.”
  • Try to design and run small experiments with your peers/groups/classes by asking them to interact with an app or answer a question. Run statistical methods on the collected data once you have a good amount of data after a period of time. This might be very hard to pull off but should be very interesting.
  • Analyze stock prices, cryptocurrencies, and design hypothesis around the average return or any other metric. Determine if you can reject the null hypothesis or fail to do so using critical values.

6. Machine Learning / AI

(예상 시간 : 4 ~ 5 개월)

앞서 언급 한 모든 주요 개념을 숙지 한 후 이제 멋진 ML 알고리즘을 시작할 준비가되었습니다.

학습에는 세 가지 주요 유형이 있습니다.

  1. 지도 학습— 회귀 및 분류 문제를 포함합니다.단순 선형 회귀, 다중 회귀, 다항 회귀, 나이브 베이 즈, 로지스틱 회귀, KNN, 트리 모델, 앙상블 모델을 연구합니다.평가 지표에 대해 알아 봅니다.
  2. 비지도 학습— 클러스터링과 차원 감소는 비지도 학습의 널리 사용되는 두 가지 응용 프로그램입니다.PCA, K- 평균 클러스터링, 계층 적 클러스터링 및 가우스 혼합에 대해 자세히 알아 봅니다.
  3. 강화 학습(건너 뛸 수 있음 *) — 자기 보상 시스템을 구축하는 데 도움이됩니다.보상 최적화, TF-Agents 라이브러리 사용, Deep Q- 네트워크 생성 등을 배우십시오.

대부분의 ML 프로젝트에서는 내가 설명한 여러 작업을 마스터해야합니다.이 블로그.

자원:

deeplearning.ai의 딥 러닝 전문화

심층 학습에 관심이있는 분들은 deeplearning.ai 및 Hands-ON 책에서 제공하는이 전문화를 완료하여 시작할 수 있습니다.이것은 컴퓨터 비전이나 NLP 문제를 해결할 계획이 아니라면 데이터 과학 관점에서 그렇게 중요하지 않습니다.

딥 러닝은 전용 로드맵이 필요합니다.모든 기본 개념과

학습 진행 상황 추적

Image for post

또한 Notion에서 학습 추적기를 만들었습니다.필요에 맞게 사용자 정의하고이를 사용하여 진행 상황을 추적하고 모든 리소스와 프로젝트에 쉽게 액세스 할 수 있습니다.

아래에서이 블로그의 비디오 버전을 찾으십시오!

Harshit을 사용한 데이터 과학

이것은 광범위한 데이터 과학에 대한 높은 수준의 개요 일 뿐이며 이러한 각 주제에 대해 자세히 알아보고 각 범주에 대한 낮은 수준의 개념 기반 계획을 만들 수 있습니다.

새 주제를 추가하거나 이름을 변경하려면이 블로그에 응답하거나 동영상에 댓글을 남겨주세요.또한 어떤 카테고리에서 프로젝트 튜토리얼을 진행하고 싶은지 알려주세요.

당신은 나와 연결할 수 있습니다트위터또는LinkedIn.

Predicting Song Skipping on Spotify -번역

Spotify에서 노래 건너 뛰기 예측

LightGMB를 사용하여 오로지 오디오 기능만을 기반으로 내 노래 건너 뛰기 습관 예측

Introduction

2019 년 초 Spotify는 플랫폼에 대한 흥미로운 통계를 공유했습니다.서비스에있는 3 천 5 백만 곡 이상의 노래 중에서 Spotify 사용자는 20 억 개 이상의 재생 목록을 만들었습니다 (Oskar Stål, 2019).나는 우리의 음악 취향이 우리의 DNA와 같고 70 억 명의 사람들에게 매우 다양하지만 빌딩 블록 (뉴클레오타이드 / 노래)은 같다는 비유를 생각했습니다.결과적으로 Spotify의 비즈니스 모델이 새로운 노래를 추천하는 능력에 의존하기 때문에 사용자의 음악 취향을 추론하는 것이 어렵습니다.

문제 설명

Spotify에는 싫어요 버튼이므로 노래 건너 뛰는 것은 음악 취향을 추론하기 위해 배워야 할 미묘한 단서입니다.이 프로젝트에서는 2019 년 Spotify 스트리밍 기록을 사용하여 오디오 기능만을 기반으로 노래를 건너 뛸지 여부를 예측하는 예측 모델을 구축합니다.

다음 단계에 따라 자신의 Spotify 스트리밍 기록을 요청할 수 있습니다.

Data Descriptions

Spotify 데이터를 요청한 후 2019 년에들은 모든 노래, 아티스트 이름, 스트리밍 시간이 포함 된 ZIP 파일이 포함 된 이메일을 받았습니다.데이터 처리는 다음과 같습니다.

  1. 팟 캐스트를 걸러 내고 노래 만 분석합니다.
  2. Spotify API를 사용하여 노래의 고유 ID와 오디오 기능을 추출했습니다.
  3. 트랙을 스트리밍 한 시간과 노래 길이 사이의 간격을 계산합니다.갭이 60 초를 넘으면 노래를 건너 뛰었다 고 유도합니다.

아래는 단계의 자세한 파이썬 구현입니다.

오디오 특성 만 노래 건너 뛰기에 대해 알려줄 수 있는지 찾는 것이 주장이기 때문에 노래 제목과 아티스트가 포함 된 열을 삭제했습니다.

최종 데이터 세트에는 다음 열이 있습니다.

Image for post

가정

모델링의 중요한 단계는 결과를 적절하게 해석하기 위해 모든 가정과 한계를 배치하는 것입니다.일부 가정은 데이터 수집 프로세스로 인한 것이고 다른 가정은 모델링 프로세스의 일부입니다.

  • 사용자의 음악 취향은 동 질적입니다. 즉, 사용자가 노래를 건너 뛰도록 유도하는 메커니즘은 시간이 지남에 따라 고정됩니다.
  • 노래는 오디오 기능으로 분류되므로 가사는 자연어 텍스트로 해석되지 않습니다.가사 의미가 노래 건너 뛰기의 강력한 예측 요인이 될 수 있으므로이 제한 사항을 고려해야합니다.

모델링

저는 LightGBM 바이너리 분류를 사용하여 오로지 오디오 기능만을 기반으로 내 노래 건너 뛰기 습관을 추론합니다.

Image for post

베이지안 최적화

LightGBM에는 많은 매개 변수가 포함되어 있으므로 가능한 모든 값을 실행하는 대신 초 매개 변수 조정을 위해 베이지안 최적화를 사용했습니다.

Image for post

결과 & amp;토론

이 모델은 74.17 %의 정확도로 개인화 된 데이터에서 더 잘 수행됩니다 (베이 즈 최적화의 28 번째 반복).Spotify 사용자가 동종이라는 가정은 강력한 것이며, 사용자 수준 세부 정보를 더 많이 수집하면 성능이 향상 될 수 있습니다.

전반적으로 추천 엔진에는 사용자에 대한 개인화 된 학습과 노래에 대한 일반적인 학습이 모두 필요합니다.이 프로젝트에서는 오디오 기능, 오디오 및 사용자 기능, 개인 청취 기록 만 사용하여 기계 학습 분류를 실험했습니다.추가 조사에는 데이터가 생성되는 메커니즘을 이해하는 것이 곡선 맞춤보다 더 유익하기 때문에 공변량 간의 인과 관계를 포함 할 수 있습니다.

참고 문헌

  • 오스카 스톨 (2019).Spotify의 음악 추천.Nordic Data Science 및 Machine Learning Summit.다음에서 검색 :https://youtu.be/2VvM98flwq0
  • Brian Brost, Rishabh Mehrotra 및 Tristan Jehan.2019. 음악 스트리밍 세션 데이터 세트.2019 년 월드 와이드 웹 컨퍼런스 (WWW ’19), 2019 년 5 월 13 일 ~ 17 일, 미국 캘리포니아 주 샌프란시스코에서 진행 중.ACM, New York, NY, USA, 7 페이지.https://doi.org/10.1145/3308558.3313641

Facebook’s PyGraph is an Open Source Framework for Capturing Knowledge in Large Graphs -번역

Facebook의 PyGraph는 큰 그래프로 지식을 캡처하기위한 오픈 소스 프레임 워크입니다.

새로운 프레임 워크는 큰 그래프 구조에서 그래프 임베딩을 학습 할 수 있습니다.

Image for post

Source: https://morioh.com/p/fdc360a84d73

저는 최근에 AI 교육에 관한 새로운 뉴스 레터를 시작했습니다.TheSequence는 읽는 데 5 분이 소요되는 비 BS (과장, 뉴스 없음 등) AI 중심 뉴스 레터입니다.목표는 기계 학습 프로젝트, 연구 논문 및 개념에 대한 최신 정보를 유지하는 것입니다.아래에서 구독하여 사용해보세요.

그래프는 기계 학습 애플리케이션의 기본 데이터 구조 중 하나입니다.특히 그래프 임베딩 방법은 기본 그래프 구조를 사용하여 노드 표현을 학습한다는 점에서 비지도 학습의 한 형태입니다.소셜 미디어 예측, 사물 인터넷 (IOT) 패턴 탐지 또는 약물 시퀀스 모델링과 같은 주류 시나리오의 훈련 데이터는 그래프 구조를 사용하여 자연스럽게 표현됩니다.이러한 시나리오 중 하나는 수십억 개의 상호 연결된 노드가있는 그래프를 쉽게 생성 할 수 있습니다.그래프 구조의 풍부함과 고유 한 탐색 기능은 기계 학습 모델을위한 훌륭한 놀이터이지만 그 복잡성은 엄청난 확장 성 문제를 안고 있습니다.당연히 최신 딥 러닝 프레임 워크에서 대규모 그래프 데이터 구조에 대한 지원은 여전히 상당히 제한적입니다.최근에 페이스 북은PyTorch BigGraph, PyTorch 모델에서 매우 큰 그래프에 대한 그래프 임베딩을 훨씬 빠르고 쉽게 생성 할 수있는 새로운 프레임 워크입니다.

어느 정도까지는 노드 간의 연결을 사용하여 특정 관계를 추론 할 수 있으므로 그래프 구조는 레이블이 지정된 학습 데이터 세트의 대안으로 볼 수 있습니다.이것은 노드 사이에 에지가있는 노드 쌍에 대한 임베딩이 공유 에지가없는 노드 쌍보다 서로 더 가깝다는 목표를 최적화하여 그래프에서 각 노드의 벡터 표현을 학습하는 비지도 그래프 임베딩 방법에 따른 접근 방식입니다.이것은 word2vec과 같은 단어 임베딩이 텍스트에서 학습되는 방식과 유사합니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

대부분의 그래프 임베딩 방법은 큰 그래프 구조에 적용될 때 상당히 제한적입니다.예를 들어, 노드 당 20 억 개의 노드와 100 개의 임베딩 매개 변수가있는 모델 (부동으로 표시됨)은 매개 변수를 저장하는 데 800GB의 메모리가 필요하므로 많은 표준 방법이 일반적인 상용 서버의 메모리 용량을 초과합니다.딥 러닝 모델의 주요 과제를 나타내는 것은 Facebook의 BigGraph 프레임 워크의 기원입니다.

PyTorch BigGraph

PyTorch BigGraph (PBG)의 목표는 그래프 임베딩 모델을 수십억 개의 노드와 수조 개의 에지가있는 그래프로 확장 할 수 있도록하는 것입니다.PBG는 다음과 같은 네 가지 기본 구성 요소를 활성화하여이를 달성합니다.

  • 그래프 분할, 모델을 메모리에 완전히로드 할 필요가 없습니다.
  • 다중 스레드 계산각 컴퓨터에서
  • 분산 실행여러 컴퓨터 (선택 사항)에서 모두 동시에 그래프의 분리 된 부분에서 작동
  • 일괄 네거티브 샘플링, 에지 당 100 만 개의 네거티브를 사용하여 기계 당 초당 100 만 개의 에지를 처리 할 수 있습니다.

PBG는 두 개의 파티션이 메모리에 들어갈 수 있도록 크기가 조정 된 P 파티션으로 그래프 구조를 무작위로 분할하여 기존 그래프 임베딩 방법의 일부 단점을 해결합니다.예를 들어 에지의 소스가 파티션 p1에 있고 대상이 파티션 p2에있는 경우 버킷 (p1, p2)에 배치됩니다.동일한 모델에서 그래프 에지는 소스 및 대상 노드를 기반으로 P2 버킷으로 나뉩니다.노드와 에지가 분할되면 한 번에 하나의 버킷에서 훈련을 수행 할 수 있습니다.버킷 (p1, p2) 훈련에는 파티션 p1 및 p2에 대한 임베딩 만 메모리에 저장되어야합니다.PBG 구조는 버킷에 이전에 훈련 된 임베딩 파티션이 하나 이상 있음을 보장합니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

PBG가 진정으로 혁신하는 또 다른 영역은 훈련 메커니즘의 병렬화 및 배포입니다.PBG는 PyTorch를 사용합니다.병렬화 프리미티브앞에서 설명한 블록 파티션 구조를 활용하는 분산 학습 모델을 구현합니다.이 모델에서 개별 기계는 서로 다른 기계 간의 통신을 최소화하기 위해 작업자에게 버킷을 분할하는 잠금 서버를 사용하여 분리 된 버킷에서 훈련하도록 조정합니다.각 머신은 서로 다른 버킷을 사용하여 모델을 병렬로 학습시킬 수 있습니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

이전 그림에서 머신 2의 Trainer 모듈은 머신 1의 잠금 서버에서 버킷을 요청하여 해당 버킷의 파티션을 잠급니다.그런 다음 트레이너는 더 이상 사용하지 않는 파티션을 저장하고 샤드 된 파티션 서버에서 필요한 새 파티션을로드합니다. 이때 이전 파티션을 잠금 서버에서 해제 할 수 있습니다.그런 다음 공유 파일 시스템에서 에지를로드하고 스레드 간 동기화없이 여러 스레드에서 학습을 수행합니다.별도의 스레드에서 소수의 공유 매개 변수가 분할 된 매개 변수 서버와 지속적으로 동기화됩니다.모델 체크 포인트는 때때로 트레이너가 공유 파일 시스템에 작성합니다.이 모델을 사용하면 최대 P / 2 머신을 사용하여 P 버킷 세트를 병렬화 할 수 있습니다.

PBG의 간접적 인 혁신 중 하나는 일괄 네거티브 샘플링 기술을 사용하는 것입니다.기존의 그래프 임베딩 모델은 임의의 “거짓”에지를 참 양성 에지와 함께 음성 학습 예제로 구성합니다.이렇게하면 새 샘플마다 적은 비율의 가중치 만 업데이트해야하므로 훈련 속도가 크게 빨라집니다.그러나 네거티브 샘플은 결국 그래프 처리에 성능 오버 헤드를 유발하고 결국 임의의 소스 또는 대상 노드로 실제 에지를 “손상”시킵니다.PBG는 N 개의 임의 노드의 단일 배치를 재사용하여 N 개의 훈련 에지에 대해 손상된 음수 샘플을 생성하는 방법을 도입했습니다.다른 임베딩 방법과 비교하여이 기술을 사용하면 적은 계산 비용으로 실제 에지 당 많은 네거티브 예제를 학습 할 수 있습니다.

큰 그래프에서 메모리 효율성과 계산 리소스를 높이기 위해 PBG는 Bn 샘플링 된 소스 또는 대상 노드의 단일 배치를 활용하여 여러 개의 네거티브 예제를 구성합니다. 일반적인 설정에서 PBG는 훈련 세트에서 B = 1000 포지티브 에지의 배치를 가져옵니다.50 개의 가장자리 조각으로 나눕니다.각 청크의 대상 (동등하게, 소스) 임베딩은 꼬리 항목 유형에서 균일하게 샘플링 된 50 개의 임베딩과 연결됩니다.200 개의 샘플링 된 노드와 50 개의 긍정의 외적은 9900 개의 부정적인 예와 같습니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

일괄 음수 샘플링 접근 방식은 모델 학습 속도에 직접적인 영향을 미칩니다.일괄 처리를 사용하지 않으면 학습 속도가 음수 샘플 수에 반비례합니다.일괄 훈련은 해당 방정식을 개선하여 일정한 훈련 속도를 달성합니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

Facebook은 LiveJournal, Twitter 데이터 및 YouTube 사용자 상호 작용 데이터와 같은 다양한 그래프 데이터 세트를 사용하여 PGB를 평가했습니다.또한 PBG는 15,000 개의 노드와 600,000 개의 에지를 포함하고 일반적으로 사용되는 FB15k로 알려진 Freebase 그래프의 더 작은 하위 집합뿐 아니라 1 억 2 천만 개 이상의 노드와 27 억 개의 에지를 포함하는 Freebase 지식 그래프를 사용하여 벤치마킹되었습니다.다중 관계 임베딩 방법에 대한 벤치 마크.FB15k 실험은 PBG가 최신 그래프 임베딩 모델과 유사한 성능을 보이는 것으로 나타났습니다.그러나 전체 Freebase 데이터 세트에 대해 평가했을 때 PBG는 메모리 소비가 88 % 이상 향상되었음을 보여줍니다.

Image for post

출처:https://github.com/facebookresearch/PyTorch-BigGraph?fbclid=IwAR1X2QJ5zltf6-f_OZOB2YmBqqQOM99RehXu_kqCmWA_LyPeBfR4MhSXccU

PBG는 수십억 개의 노드와 수조 개의 에지가있는 구조로 그래프 데이터를 확장하고 학습 및 처리 할 수있는 최초의 방법 중 하나입니다.PBG의 첫 번째 구현GitHub에서 오픈 소스되었습니다.그리고 우리는 가까운 장래에 흥미로운 기여를 기대해야합니다.

The Reason Behind if __name__ == ‘__main__’ in Python -번역

The Reason Behind if __name__ == ‘__main__’ in Python

Why is it necessary?

the statement if_name_==’_main_’:

Photo by author generated from carbon

You might have seen this one before: the syntax which often gets ignored because it doesn’t seem to hinder the execution of your code. It may not seem necessary, but that’s only if you’re working with a single Python file.

Let’s Get Right Into It!

Let’s start out by deconstructing the statement from left to right. We already know what an if statement is; however, the most important part of the statement are the two things being compared.

Let’s start with __name__ .This is used to denote the name of the file that is currently being run, but there is a trick to this. The file currently being run will always have the value __main__ .

This sounds confusing at first but let’s clarify.

Let’s create two Python files:

  • current_script.py
  • other_script.py

Please ensure these files are in the same directory/folder.

Inside the other_script.py file, we’ll add a two-print statement, just as shown below.

print("****inside other script.py*****")print("__name__ is ",__name__)

Run this other_script.py file.

Note: I will be running this file while using Python within the terminal, just as illustrated below. Also note that I am working from a Windows operating system.

python other_script.py
Image for post

Output:

****inside other script.py*****
__name__ is __main__

Now you realize that it’s just as I stated before. The file being executed will always have the value __main__. This represents the point of entry into our application.

In Python and pretty much every programming language, we can import other files into our application. We’ll now go into our current_script.py and input the following code:

import other_scriptprint("")print("****inside current script.py*****")print("__name__ is ",__name__)

The code above imports the other_script.py with the import statement at the top, which is followed by print(“****inside current script.py*****”) to verify that we are in thecurrent_script.py file.

Be aware that because we imported other_script at the top of the file, this therefore means that the entire contents of other_script.py will now be injected into where import other_script is.

Before we continue, take keen note of the input of when we ran other_script.py. Now observe what happens when we execute current_script.py.

python current_script.py
Image for post

Output:

****inside other script.py*****
__name__ is other_script
****inside current script.py*****
__name__ is __main__

You will now realize that previously when we ran other_script.py, it gave us the value for __name__ as __main__. But now since we ran it as an import in current_script.py, the value of __name__ suddenly changed to the name of the imported script which is other_script.

Furthermore, the value of __name__ for current_script.py is __main__. This goes back to what I had highlighted previously: The file currently being run will always have the value __main__.

Let’s put this all together now.

The file you are currently running will always be __main__, while any other imported files will not be. Those will have the name of their respective files.

Use Cases

This syntax comes in handy when you have programs that have multiple Python files.

Let’s create a program that has two classes. A Name class and a Person class. These two classes will be placed in two separate files, name.py and person.py. The Person class uses theName class in this system.

We’ll start out by building the Name class in the name.py file. This is a simple class that has only two attributes, fname (first name) and lname (last name) along with their corresponding getters and setters.

__repr__ is the default output when the object is printed.

We added our syntax if__name__ == “__main__:”. Based on our understanding, we can tell that the body of this if statement will only be executed if the main file is the one being executed — meaning it is not an import.

But why do we do this?

We do this because it is one of the most important steps when we want certain operations to be done only on the file we are currently running. In this scenario, we wrote a Name class and we are testing out its functionalities.

Output:

fname=Jordan;lname=Williams

As you can see from the output above, we were able to test the functionality of the Name class. However, this concept will not hit home until we’ve built the other class.

Let’s create our person.py file.

Notice from name import Name, where I imported the Name class into our file, it was used on line 7 whereself.name = Name(fname, lname).

Output:

201107
John Brown
Male

This is the output from testing our Person class. Notice that there is no output from the Name class because it is encased under the condition __name__ == “__main__” and it is currently not the main file.

Let’s now remove __name__ == “__main__” from name.py and see the difference:

Notice that __name__ == “__main__” is not removed. We will now run our person.py file.

Output:

fname=Jordan;lname=Williams
201107
John Brown
Male

See, here we only wanted to test the functionality of the Person class. However, we are getting outputs from the Name class as well.

This could also be a problem if you had made some Python library and wanted to extend that functionality to another class but do not want that other library to run automatically in your current script.

Other Languages

Some of you who dabble in other programming languages might have noticed that this is the same as the main method or functions found in other languages. Programming languages such as Java with public static void main(String[] args) , C# with a similar public static void Main (string[] args) and C with int main(void) all have some sort of main function or method present to execute multiple files/scripts of code.

Let’s look at the equivalent code in another language.

Let’s look at Java for instance.

Summary

Sometimes you want to run some logic only in the file currently being executed. This comes in handy in testing individual units of code without the hindrance of other files being executed. This can come in handy when building libraries that depend on other libraries. You wouldn’t want a rogue execution of another library in the code you are in.