기계 학습 문제 해결 의 절차

기계 학습 문제 해결 의 절차
기계 학습 알고리즘 으로 해결 하려 는 모든 문제 에 대해 '방법' 이 존재 하 는데 이 템 플 릿 에 따라 '순서대로' 하면 결 과 를 얻 을 수 있다.한 제품 의 생산 라인 과 같은 이치 입 니 다.하지만 결 과 를 얻 는 좋 고 나 쁨 은 당신 이 숙련공 인지 아 닌 지 와 큰 관계 가 있 습 니 다.구체 적 인 문 제 를 해결 하 는 데 많은 tricks 가 결과 향상 에 도움 이 되 기 때문이다.
전체 '세트' 는 다음 과 같은 5 단계 로 나 눌 수 있다.
  • 정의 문제
  • 데이터 에 대한 예 처리
  • 알고리즘 추출 검사
  • 결 과 를 최적화
  • 결과 전시
  • 여기 서 전체 절 차 를 매우 개괄적 으로 요약 하 였 는데 실제 문제 에 대해 서 는 '바람 을 보고 키 를 움 직 여야 한다' 는 틀 을 유연 하 게 운용 해 야 한다.다음은 모든 절차 에 대해 설명 하 겠 습 니 다.
    정의 문제
    이 절 차 는 전체 절차 에 대한 중요성 이 분명 하 다. 문 제 를 해결 하 는 처음부터 방향 성 실 수 를 저 질 렀 다 면 결 과 는 전혀 다 를 수 밖 에 없다.예 를 들 어 분류 알고리즘 을 가지 고 집합 문 제 를 해결 하 는 것 은 분명 정확 한 결 과 를 얻 지 못 할 것 이다.또 하나의 잘못된 부분 은 바로 미신 성능 이 강 한 알고리즘, 예 를 들 어 svm 이다.모든 분류 문 제 는 svm 로 해결 되 며, 일부 상황 에서 logistic 복귀 가 더 좋 은 결 과 를 얻 을 수 있 습 니 다.그래서 우선 문제 의 본질 을 밝 혀 야 한다.
    여기 서 저 는 실천 경험 이 풍부 하지 않 아서 건설 적 인 의견 을 많이 내 놓 을 수 없습니다.여기 서 나 는 그 중의 한 가지 만 말 하 겠 다. 바로 유사 성 을 찾 는 문제 이다.여기 에는 fine - tuning 이라는 아주 중요 한 기술 이 있 습 니 다.
    여기 서 신경 망 으로 예 를 들 어 보 세 요.누 군 가 는 이미 한 데이터 세트 에서 하나의 임 무 를 대상 으로 네트워크 를 훈련 시 켰 다. 만약 에 당신 이 해결 하고 자 하 는 문제 도 이 데이터 세트 를 대상 으로 하 는 것 이 고 임무 가 다 를 뿐이다.이 점 은 사실 자연 언어 처리 에 있어 서 비교적 흔히 볼 수 있다.그러면 네트워크 앞 에 있 는 층 의 가중치 를 재 활용 하여 출력 층 이나 출력 층 이전의 몇 층 만 바 꿀 수 있 습 니 다.학습 율 의 설정 에 있어 앞의 단 계 는 이미 훈련 된 것 이기 때문에 비교적 작 게 설정 해 야 하고 뒤의 단 계 는 크게 설정 해 야 한다.이런 방법 은 인터넷 전 체 를 훈련 시 키 는 시간 을 현저히 낮 출 수 있다.비교적 짧 은 시간 안에 괜 찮 은 결 과 를 얻 을 수 있다.
    나 는 이전 학습 도 일종 이 라 고 생각 하지만 이 분 야 는 사실 잘 모 르 기 때문에 계속 전개 할 수 없다.
    데이터 전처리
    모든 기계 학습 알고리즘 은 데이터 의 기초 위 에 세 워 진 것 이다.
    The more disciplined you are in your handling of data, the more consistent and better results you are like likely to achieve. 

    우선 데 이 터 를 수집 하 는 과정 이다. 나 는 실제 사례 를 접 한 적 이 없 기 때문에 이 부분 에 대해 서도 잘 모른다.이 데이터 가 폭발 하 는 시대 에 데 이 터 를 수집 하 는 것 은 어렵 지 않 을 것 이 며, 관건 은 데 이 터 를 정확하게 처리 하 는 것 이다.
    그 다음 에 데이터 의 세척 과정 은 데이터 형식의 전환 (알고리즘 이 처리 할 수 있 는 형식 으로 바 꾸 기 를 원 함), 데이터 의 세척 (소음 데이터 처리, 값 부족 처리), 그리고 데이터 의 샘플링 (우리 가 이렇게 많은 데 이 터 를 필요 로 하지 않 을 수도 있 음) 을 포함한다.이것 도 예비 처리 과정의 중점 이 죠? 마침 저도 잘 모 르 겠 어 요.
    그 다음 에 데이터 에 대해 등가 의 전환 을 하 는 것 은 통 일 된 데이터 의 도량 (이것 은 거리 계산 에서 매우 중요 하 다), 0 평균치 화, 속성의 분해 와 합병 을 포함한다.다음은 속성의 분해 와 합병 에 대해 설명 을 하 는데 이것 은 다른 자료 에 서 는 매우 드물다.
    속성의 분 해 는 하나의 속성 이 여러 개의 하위 속성 으로 분 해 될 수 있 고 특정한 하위 속성 만 수출 에 현저 한 영향 을 미친다.그러면 우 리 는 원래 의 속성 을 저장 하지 않 고 이 하위 속성 만 저장 할 수 있다.예 를 들 어 시간 이라는 속성 은 년, 월, 일, 시, 분, 초 로 분해 할 수 있 습 니 다. 달 이라는 속성 만 결과 에 영향 을 줄 수 있 습 니 다. 그러면 우 리 는 이 속성 만 유지 하면 됩 니 다.
    속성의 합병 은 속성의 분해 와 대립 하 는 것 이다.일부 하위 속성 을 새로운 속성 으로 합 친 후 이 속성 은 출력 에 미 치 는 영향 이 더욱 현저 합 니 다.그러면 우 리 는 이 속성 들 을 합병 하 는 것 을 선택 할 것 이다.예 를 들 어 '로그 인 시간' 이라는 속성 은 출력 값 에 영향 을 주지 않 을 수 있 습 니 다. 만약 에 우리 가 이 를 '로그 인 횟수' 로 바 꾸 면 결 과 는 크게 달라 질 수 있 습 니 다.
    데이터 예비 처리 과정 은 옳 고 그 름 이 없 으 며 적절 한 지 여부 만 있 을 뿐이다.이것 은 여전히 매우 깊 은 공력 이 필요 하 다.상기 절차 에 대하 여:
    You can follow this process in a linear manner, but it is very likely to be iterative with many loops.

    데이터 의 분석
    이 부분 은 본래 데이터 의 예 처리 에 속 하지만, 나 는 그래도 단독으로 나 오 는 것 이 비교적 좋다 고 생각한다.이것 은 내 가 본 자료 중 에 처음 나타난다.
    미리 처 리 된 데 이 터 를 받 은 후에 이 를 알고리즘 에 입력 하기 전에 우 리 는 데이터 에 대해 좀 알 아야 모델 중의 매개 변수 선택 에 도움 이 될 수 있다.여기 에는 주로 두 가지 방법 이 포함 되 어 있 습 니 다. Summarize Data 와 Visualize Data.
    Summarize Data 는 주로 데이터 의 내 적 속성 을 분석 합 니 다.주로 두 가지 측면 을 포함한다. Data Structure 와 Data Distribution.Data Structure 는 데이터 의 1 차원 속성 유형 (연속 적 인 것 인지 분 산 된 것 인지) 을 말한다.구체 적 인 문제 에 대해 서 는 분 산 된 속성 을 연속 화 해 야 할 수도 있다.Data Distribution 은 자연 이 데이터 의 분 포 를 가리킨다.여기 서 주로 분석 하 는 것 은 1 차원 데이터 의 분포 이다.라벨 이 있 는 데이터 라면 분류의 분 포 를 알 수 있 고 모델 분류 시 정확도 의 하한 선 을 알 수 있다.더 많은 것 은 속성 간 의 연관 성 을 얻 는 것 이다.관련 이 있다 면, 관련 도가 얼마나 됩 니까?이렇게 하면 일부 불필요 한 속성 (데이터 의 강 차원) 을 제거 하고 어떤 속성 이 결과 에 미 치 는 영향 이 비교적 큰 지 알 수 있다 (가중치 선택).
    Visualize Data 는 자 연 스 럽 게 데 이 터 를 시각 적 으로 조작 합 니 다.그렇게 많은 그림 을 그 릴 수 있 는데 도대체 어떤 종류의 그림 을 선택해 야 합 니까?일반적으로 막대 그래프 와 산 점 도 를 그린다.
    기둥 모양 도 는 모든 차원 의 값 과 같은 라벨 간 의 관 계 를 묘사 하고 도형 에서 모든 차원 의 데이터 가 어떤 분포 에 복종 하 는 지 알 수 있다.일부러 두 장의 그림 을 훔 쳤 다.
    각 두 조 의 속성 에 대해 산 점 도 를 그 려 서 속성 간 의 연관 성 을 쉽게 알 수 있다.
    위의 설명 을 통 해 알 수 있 듯 이 Summarize Data 와 Visualize Data 두 과정 은 서로 보완 된다.
    알고리즘 추출 검사
    이 점 에 대하 여 이 자료 에서 나 도 처음 보 았 다.
    구체 적 인 문제 에 대해 우 리 는 여러 가지 알고리즘 을 풀 수 있 을 지도 모른다. 그러면 우 리 는 모든 방법 에 대해 한 번 씩 시도 해 야 하지 않 을 까?필요 하지 않 습 니 다. 시간 이 너무 걸 리 고 모든 알고리즘 이 효과 가 있 는 것 은 아 닙 니 다.추출 검사 (spot - checking) 는 여러 알고리즘 을 신속하게 검증 하여 어떤 알고리즘 에 대해 진일보 한 훈련 을 할 지 결정 하 는 것 이다.
    알고리즘 추출 검 사 를 할 때 데이터 가 집 중 된 모든 데 이 터 를 사용 하여 훈련 할 필요 가 없고 작은 일부분 만 사용 해 야 한다.알고리즘 을 선택 한 후에 모든 데 이 터 를 사용 하여 진일보 한 훈련 을 한다.교차 검증 방법 으로 이 과정 을 진행 할 수 있다.
    알고리즘 추출 검 사 를 할 때 후보 집중 에 있 는 알고리즘 의 종류 가 다양 할 수록 좋다. 그래 야 어떤 유형의 알고리즘 이 데이터 의 구 조 를 더욱 잘 배 울 수 있 는 지 테스트 할 수 있다.알고리즘 을 선택 한 후에 반드시 이 알고리즘 을 직접 사용 하여 진일보 한 학습 을 하 는 것 이 아니 라 이 알고리즘 을 바탕 으로 하 는 개선 버 전 을 사용 할 수 있 습 니 다.
    이 부분 에서 중요 한 내용 은 훈련 집, 테스트 집의 구분, 결과 평가 기준의 선택, 그리고 결과 의 신뢰성 이다.이 부분 은 나 도 블 로 그 를 써 서 구체 적 으로 논술 한 적 이 있다. 왜냐하면 물이 너무 깊 기 때문이다.
    결과 개선
    알고리즘 훈련 이 끝 난 후 알고리즘 결과 가 뜻 대로 되 지 않 으 면 어떻게 해 야 합 니까?만약 알고리즘 의 결과 가 비교적 만 족 스 럽 다 면 결 과 를 좀 더 끌 어 올 릴 수 있 는 방법 이 있 습 니까?이 부분 은 주로 이 두 문 제 를 해결 하 는 것 이다.글 에서 세 가지 방법 을 제시 했다.
  • Algorithm tuning
  • Ensembles
  • Extreme Feature Engineering

  • 다음은 이 세 가지 방법 을 각각 서술 한다.
    알고리즘 은 일반적으로 이 많은 매개 변수 로 가득 차 서 알고리즘 을 훈련 하 는데 주로 이런 매개 변수 가 형 성 된 매개 변수 공간 에서 한 점 을 찾 아 목표 함수 가 가장 좋 은 것 을 달성 하도록 한다.글 에서 언급 한 방법 은 바로 매개 변수 공간 을 샘플링 하여 가능 한 최 적 치 를 발견 한 다음 에 이런 점 에서 훈련 을 시작 하 는 것 이다.이 과정 을 몇 번 반복 해서 더 좋 은 해 를 얻 으 려 고 할 수 있다.하지만 구체 적 인 샘플링 방법 은 설명 되 지 않 았 다 는 점 이 구덩이 다.여러 차례 훈련 을 했 기 때문에 적합 을 넘 길 위험 이 크다.
    두 번 째 방법 은 통합 방법 이다. 이 알고리즘 을 전문 적 으로 서술 하 는 블 로그 가 있 을 것 이다.
    앞의 두 가지 방법 은 모두 알고리즘 자체 에서 약간의 돌 파 를 시도 하 는 것 이 고, 세 번 째 방법 은 데이터 자체 에서 시작 하 기 를 바 라 는 것 이다.저 자 는 사실 이런 방법 을 '특징 공정' 이 라 고 할 수 있 는데 바로 데이터 의 특징 에 있어 서 일 을 하 는 것 이 라 고 말 했다.특징의 분해 / 합병 을 통 해 특징 간 의 연관 성 을 낮추다.분 산 된 특징 치 를 연속 적 인 특징 치 로 바 꾸 는 경우 도 있다.알고리즘 은 항상 데이터 에 포 함 된 특정한 모델 을 배우 기 를 원 하기 때문에 더욱 강 한 일반화 효 과 를 가 질 수 있 습 니 다.만약 하나의 모델 이 너무 복잡 하 다 면 알고리즘 의 효 과 는 반드시 영향 을 받 을 것 이다.그래서 우 리 는 이 복잡 한 모델 을 분해 하고 싶 습 니 다. 이것 이 바로 이 방법의 취지 입 니 다.매번 훈련 할 때 이 절 차 를 진행 하여 새로운 훈련 / 테스트 데이터 세트 (특징 이 변 했 기 때문에) 를 얻 을 수 있 으 며, 새로운 데이터 세트 에서 의 학습 결 과 를 통 해 그 후의 특징의 분해 / 합병 에 대해 지도 적 인 건 의 를 할 수 있다.
    결과 전시
    당신 의 알고리즘 이 한 문 제 를 잘 해결 할 수 있 을 때, 당신 은 당연히 당신 의 성 과 를 모두 에 게 보 여 주 기 를 바 랍 니 다.이 안에 두 가지 경 로 를 말 했다. 논문 한 편 (또는 비슷 한 것) 을 쓰 고 이 를 실제 제품 과 결합 시 키 는 것 이다.마침 이 두 가지 방면 에서 나 는 경험 이 없 었 고, 그 다음 에는 그 다음 이 없 었 다.
    마지막 에 쓰다
    앤 리 사이트 하나 드릴 게 요.http://machinelearningmastery.com/start-here/기계 학습 의 학습 자원 이 많이 들 어 있 습 니 다.내용 은 이 사이트 에서 번역 되 었 다.

    좋은 웹페이지 즐겨찾기