6 AutoML UI 시작하기

AutoML 사용자 인터페이스(AutoML UI)는 코딩이 필요 없는 자동화된 머신 러닝 모델링을 제공하는 Oracle Machine Learning 인터페이스입니다. AutoML UI에서 실험을 생성하고 실행할 때 자동화된 알고리즘 선택, 기능 선택 및 모델 조정을 수행하여 생산성을 향상시키고 모델 정확도와 성능을 잠재적으로 향상시킵니다.

다음 단계는 머신 러닝 모델링 워크플로우를 구성하며 AutoML 사용자 인터페이스에서 자동화됩니다.

  1. 알고리즘 선택: 알고리즘의 순위를 지정하면 데이터 세트 및 해당 특성과 각 알고리즘에 대한 데이터 세트의 일부 예측 기능을 기반으로 보다 정확한 모델을 생성할 수 있습니다.
  2. Adaptive Sampling: 적절한 데이터 샘플을 찾습니다. 이 단계의 목표는 모델 품질을 저하시키지 않고 기능 선택 및 모델 튜닝 단계의 속도를 높이는 것입니다.
  3. 피쳐 선택: 대상에서 가장 예측되는 피쳐의 하위 세트를 선택합니다. 이 단계의 목표는 이후 파이프라인 단계에서 사용되는 기능 수를 줄이는 것입니다. 특히 모델 튜닝 단계에서 예측 정확도를 저하시키지 않으면서 파이프라인 속도를 높이는 데 사용됩니다.
  4. 모델 튜닝: 각 후보 목록에 있는 알고리즘에 대해 선택된 측정항목을 기반으로 개별 알고리즘 모델 품질을 높이는 것을 목표로 합니다.
  5. 기능 예측 영향: AutoML UI 파이프라인의 최종 단계입니다. 여기서 각 입력 열이 최종 튜닝 모델의 예측에 미치는 영향이 계산됩니다. 계산된 예측 영향은 조정된 AutoML 모델의 동작에 대한 인사이트를 제공합니다.
광범위한 데이터 과학 배경이 없는 비즈니스 사용자는 AutoML UI를 사용하여 머신 러닝 모델을 생성하고 배포할 수 있습니다. Oracle Machine Learning AutoML UI는 다음 두 가지 기능 기능을 제공합니다.
  • 머신 러닝 모델을 생성합니다.
  • 머신 러닝 모델 배포

AutoML UI 실험

AutoML UI에서 실험을 생성하면 머신 러닝 워크플로우와 관련된 모든 단계가 자동으로 실행됩니다. 실험 페이지에 생성한 모든 실험이 나열됩니다. 실험 세부정보를 보려면 실험을 누릅니다. 또한 다음 작업을 수행할 수 있습니다.

그림 6-1 실험 페이지

실험 페이지
  • 생성: 생성을 눌러 새 AutoML UI 실험을 생성합니다. 생성한 AutoML UI 실험은 작업영역 아래의 프로젝트에서 선택한 프로젝트 내에 있습니다.
  • 편집: 여기에 나열된 실험을 선택하고 편집을 눌러 실험 정의를 편집합니다.
  • 삭제: 여기에 나열된 실험을 선택하고 삭제를 눌러 삭제합니다. 실행 중인 실험은 삭제할 수 없습니다. 삭제하려면 먼저 실험을 중지해야 합니다.
  • 복제: 실험을 선택하고 복제를 눌러 복사본을 생성합니다. 실험이 즉시 복제되고 준비됨 상태입니다.
  • 이동: 실험을 선택하고 이동을 눌러 동일하거나 다른 작업영역의 다른 프로젝트로 실험을 이동합니다. 프로젝트 및 작업영역 간에 실험을 이동하려면 Administrator 또는 Developer 권한이 있어야 합니다.

    주:

    실험이 RUNNING, STOPPING 또는 STARTING 상태이거나 동일한 이름으로 대상 프로젝트에 이미 있는 경우 실험을 이동할 수 없습니다.
  • 복사: 실험을 선택하고 복사를 눌러 동일하거나 다른 작업영역의 다른 프로젝트에 실험을 복사합니다.
  • 시작: 실험을 생성했지만 실행하지 않은 경우 시작을 눌러 실험을 실행합니다.
  • 정지: 실행 중인 실험을 선택하고 정지를 눌러 실험 실행을 정지합니다.

관련 항목

6.1 AutoML UI 액세스

Oracle Machine Learning Notebooks에서 AutoML UI에 접근할 수 있습니다.

AutoML UI에 액세스하려면 먼저 Autonomous Database에서 Oracle Machine Learning Notebooks에 사인인해야 합니다.
  1. Autonomous Database에서 Oracle Machine Learning Notebooks에 사인인하려면 다음을 수행합니다.
    1. Autonomous Database 인스턴스를 선택하고 Autonomous Database 세부정보 페이지에서 Database Actions를 누릅니다.

      그림 6-2 데이터베이스 작업

      데이터베이스 작업
    2. [데이터베이스 작업] 페이지에서 [개발] 섹션으로 이동하고 Oracle Machine Learning을 누릅니다.

      그림 6-3 Oracle Machine Learning

      Oracle Machine Learning
      Oracle Machine Learning 사인인 페이지가 열립니다.
    3. 사용자 이름과 비밀번호를 입력하고 로그인을 누르십시오.
    그러면 Oracle Machine Learning Notebooks 홈페이지가 열립니다.
  2. Oracle Machine Learning Notebooks 홈페이지에서 AutoML을 누릅니다.

    그림 6-4 AutoML 옵션

    홈 페이지 및 왼쪽 탐색 메뉴의 AutoML 옵션

    또는 햄버거 메뉴를 누르고 프로젝트 아래의 AutoML을 누를 수 있습니다.

6.2 AutoML UI 실험 생성

Oracle Machine Learning AutoML UI를 사용하려면 먼저 실험을 생성해야 합니다. 실험은 데이터 소스, 예측 대상 및 예측 유형을 최소로 지정하는 작업 단위입니다. 실험이 성공적으로 실행되면 선택한 측정지표에 따라 모델 품질 순서대로 머신 러닝 모델 목록이 표시됩니다. 배포할 모델을 선택하거나 노트북을 생성할 수 있습니다. 생성된 노트북에는 OML4Py를 사용하는 Python 코드와 모델을 생성하는 데 사용되는 특정 설정 AutoML이 포함되어 있습니다.

실험을 생성하려면 다음을 지정합니다.
  1. 이름 필드에 실험에 대한 이름을 입력합니다.
  2. 설명 필드에서 설명(있는 경우)을 입력합니다.
  3. 데이터 소스 필드에서 해당 스키마의 스키마와 테이블 또는 뷰를 선택합니다. 검색 아이콘을 눌러 테이블 선택 대화상자를 엽니다. 스키마를 찾아 선택한 다음 스키마 목록에서 AutoML UI 실험의 데이터 소스인 테이블을 선택합니다.

    그림 6-6 표 선택 대화상자

    테이블 선택 대화상자
    1. Schema 열에서 스키마를 선택합니다.

      주:

      데이터 소스를 선택하면 실험 페이지 하단의 기능 그리드에 통계가 표시됩니다. 계산이 완료될 때까지 사용 중 상태가 표시됩니다. [예측]에서 선택한 대상 열이 [기능] 그리드에서 강조 표시됩니다.
    2. 선택한 스키마에 따라 사용 가능한 테이블이 테이블 열에 나열됩니다. 테이블을 선택하고 확인을 누릅니다.

    주:

    다른 사용자의 스키마에 있는 테이블 또는 뷰에 대한 AutoML 실험을 생성하려면 스키마에서 해당 테이블 또는 뷰에 액세스할 수 있는 명시적 권한이 있는지 확인하십시오. 데이터베이스 관리자 또는 스키마 소유자에게 테이블이나 뷰에 액세스할 수 있는 권한을 제공하도록 요청하십시오. 예:
    grant select on <table> to <user>
  4. 예측 드롭다운 목록에서 선택한 테이블의 열을 선택합니다. 이것이 예측의 목표입니다.
  5. 예측 유형 필드에서 데이터 정의를 기반으로 예측 유형이 자동으로 선택됩니다. 그러나 데이터 유형이 허용하는 경우 드롭다운 리스트에서 예측 유형을 재정의할 수 있습니다. 지원되는 예측 유형은 다음과 같습니다.
    • 분류: 숫자가 아닌 데이터 유형의 경우 기본적으로 분류가 선택됩니다.
    • 회귀: 숫자 데이터 유형의 경우 기본적으로 회귀가 선택됩니다.
  6. 사례 ID는 데이터 샘플링 및 데이터 세트 분할을 통해 실험 간에 결과를 재현할 수 있도록 합니다. 또한 결과의 무작위성을 줄이는 데 도움이됩니다. 이 필드는 선택사항입니다.
  7. 추가 설정 섹션에서 다음을 정의할 수 있습니다.

    그림 6-7 AutoML 실험의 추가 설정

    다음은 그림 6-7에 대한 설명입니다.
    "그림 6-7 AutoML 실험의 추가 설정"에 대한 설명
    1. 재설정: 재설정을 눌러 설정을 기본값으로 재설정합니다.
    2. 최대 상위 모델: 생성할 최대 상위 모델 수를 선택합니다. 기본값은 5 모델입니다. 각 알고리즘에 대해 최상위 모델을 가져오도록 조정하려면 추가 시간이 필요하므로 최상위 모델 수를 2 또는 3으로 줄일 수 있습니다. 초기 결과를 더 빨리 얻으려면 최상위 권장 알고리즘을 고려하십시오. 이를 위해 최대 최상위 모델1.로 설정합니다. 그러면 해당 알고리즘에 대한 모델이 튜닝됩니다.
    3. 최대 실행 기간: 실험을 실행할 수 있는 최대 시간입니다. 시간을 입력하지 않으면 실험을 기본값(8시간)까지 실행할 수 있습니다.
    4. 데이터베이스 서비스 레벨: 데이터베이스 연결 서비스 레벨 및 질의 병렬화 레벨입니다. 기본값은 Low입니다. 이로 인해 병렬화가 수행되지 않고 높은 런타임 제한이 설정됩니다. Low 데이터베이스 서비스 레벨로 많은 접속을 생성할 수 있습니다. 데이터베이스 서비스 레벨을 Medium 또는 High로 변경할 수도 있습니다.
      • High 레벨은 최대 병렬화를 제공하지만 동시 작업 수를 크게 제한합니다.
      • Medium 레벨은 일부 병렬화를 사용으로 설정하지만 작업 처리에 대한 동시성이 향상됩니다.

      주:

      OCPU 제한이 1개 있으므로 항상 Free Tier에서 데이터베이스 서비스 수준 설정을 변경해도 효과가 없습니다. 그러나 자율운영 데이터베이스 인스턴스에 할당된 OCPU를 늘릴 경우 데이터베이스 서비스 레벨Medium 또는 High.로 늘릴 수 있습니다.

      주:

      데이터베이스 서비스 레벨 설정은 AutoML 컨테이너 레벨 리소스에 영향을 주지 않습니다.
    5. 모델 측정항목: 최적 모델을 선택할 측정항목을 선택합니다. AutoML UI에서 지원되는 측정항목은 다음과 같습니다.
      • 분류의 경우 지원되는 측정항목은 다음과 같습니다.
        • 균형 조정된 정확도
        • ROC AUC
        • F1(가중치 옵션 사용). 가중치가 적용된 옵션은 가중치, 바이너리, 마이크로 및 매크로입니다.
          • 마이크로 평균: 여기서는 모든 샘플이 최종 평균 측정 단위에 동등하게 기여합니다.
          • 매크로 평균: 여기서는 모든 클래스가 최종 평균 측정 단위에 동등하게 기여합니다.
          • 가중 평균: 평균에 대한 각 클래스의 기여도는 크기에 의해 가중됩니다.
        • 정밀도(가중치 옵션 포함)
        • 리콜(가중치 옵션 포함)
      • 회귀의 경우 지원되는 측정항목은 다음과 같습니다.
        • R2(기본값)
        • 음수 평균 제곱근 오류
        • 음수 평균 절대 오류
        • 음수 중간값 절대 오류
    6. 알고리즘: 지원되는 알고리즘은 선택한 예측 유형에 따라 달라집니다. 알고리즘에 대해 해당 체크박스를 눌러 선택합니다. 기본적으로 실험 실행 시 고려할 모든 후보 알고리즘이 선택됩니다. 두 예측 유형에 대해 지원되는 알고리즘:
      • 분류의 경우 지원되는 알고리즘은 다음과 같습니다.
        • 의사결정 트리
        • 일반화된 선형 모델
        • 일반화 선형 모델(능형 회귀)
        • 신경망
        • 랜덤 포레스트
        • Support Vector Machine(가우스)
        • Support Vector Machine(선형)
      • 회귀의 경우 지원되는 알고리즘은 다음과 같습니다.
        • 일반화된 선형 모델
        • 일반화 선형 모델(능형 회귀)
        • 신경망
        • Support Vector Machine(가우스)
        • Support Vector Machine(선형)

      주:

      특정 알고리즘에 대한 환경설정이 있거나 특정 요구사항이 있는 경우 고려되지 않는 알고리즘을 제거할 수 있습니다. 예를 들어 모델 투명도가 필수적이면 신경망과 같은 모델을 제외하는 것이 좋습니다. 일부 알고리즘은 다른 알고리즘보다 연산 집약적입니다. 예를 들어, Naïve Bayes와 Decision Tree는 일반적으로 Support Vector Machine 또는 Neural Network보다 빠릅니다.
  8. 선택한 테이블의 통계를 보려면 기능 그리드를 확장합니다. 지원되는 통계는 고유 값, 최소값, 최대값, 평균 및 표준 편차입니다. 기능에 대해 지원되는 데이터 소스는 테이블, 뷰 및 분석 뷰입니다. 예측에서 선택한 대상 열이 여기에서 강조 표시됩니다. 실험 실행이 완료되면 기능 그리드에 추가 열 중요가 표시됩니다. 기능 중요도는 특정 기능에 대한 예측의 전체 민감도 레벨을 나타냅니다.

    그림 6-8 기능

    특징
    수행할 수 있는 작업은 다음과 같습니다.
    • 새로고침: 선택한 데이터 소스에 대한 모든 열과 통계를 인출하려면 [새로고침]을 누르십시오.
    • 중요도 보기: 커서를 중요도 아래의 가로 막대 위로 가져가면 변수의 기능 중요도 값을 볼 수 있습니다. 값은 항상 0 ~ 1 범위에 표시되며 1에 가까운 값이 더 중요합니다.
  9. 실험 정의를 완료하면 시작저장 단추가 사용으로 설정됩니다.

    그림 6-9 실험 시작 옵션

    실험 시작 옵션
    • 시작을 눌러 실험을 실행하고 진행률 표시줄에 표시되는 AutoML UI 워크플로우를 시작합니다. 여기서 다음을 선택할 수 있습니다.
      1. 더 빠른 결과: 후보자 모델을 더 빨리 가져오려면 정확성을 희생해야 하는 경우에 이 옵션을 선택합니다. 이 옵션은 더 작은 하이퍼 매개변수 조합 세트와 함께 작동하므로 더 빠른 결과를 얻을 수 있습니다.
      2. 정확성 향상: 보다 정확한 모델에 대해 더 많은 파이프라인 조합을 시도하려면 이 옵션을 선택합니다. 파이프라인은 알고리즘, 선택된 데이터 기능 세트 및 알고리즘 하이퍼매개변수 세트로 정의됩니다.

        주:

        이 옵션은 내부 메타 학습 모델에서 권장하는 광범위한 하이퍼파라미터 옵션 세트와 함께 작동합니다. 정확성 향상을 선택하면 실험을 실행하는 데 시간이 더 오래 걸리지만 모델이 더 정확해질 수 있습니다.

      실험을 시작하면 진행률 표시줄에 다른 아이콘이 표시되어 AutoML 실험에서 머신 러닝 워크플로우의 각 단계의 상태를 나타냅니다. 진행률 표시줄에는 실험 실행을 완료하는 데 걸린 시간도 표시됩니다. 메시지 세부정보를 보려면 해당 메시지 아이콘을 누릅니다.

    • 저장을 눌러 실험을 저장하고 나중에 실행합니다.
    • 실험 생성을 취소하려면 취소를 누릅니다.

6.2.1 AutoML UI 실험에 지원되는 데이터 유형

AutoML 실험을 생성할 때 실험의 데이터 소스 및 대상을 지정해야 합니다. 이 항목에서는 AutoML 실험에서 지원하는 Python 및 SQL의 데이터 유형을 나열합니다.

표 6-1 AutoML 실험으로 지원되는 데이터 유형

데이터 유형 SQL 데이터 유형 Python 데이터 유형
수치 NUMBER, INTEGER, FLOAT, BINARY_DOUBLE, NUMBER, BINARY_FLOAT, DM_NESTED_NUMERICALS, DM_NESTED_BINARY_DOUBLES, DM_NESTED_BINARY_FLOATS

INTEGER, FLOAT(NUMBER, BINARY_DOUBLE, BINARY_FLOAT)

범주별

CHAR, VARCHAR2, DM_NESTED_CATEGORICALS

STRING(VARCHAR2, CHAR, CLOB)

구조화되지 않은 텍스트

CHAR, VARCHAR2, CLOB, BLOB, BFILE

BYTES (RAW, BLOB)

6.3 실험 보기

AutoML UI 실험 페이지에 생성한 모든 실험이 나열됩니다. 각 실험은 완료됨, 실행 중 및 준비 단계 중 하나에 있습니다.

실험을 보려면 실험 이름을 클릭합니다. 실험 페이지에 선택한 실험의 상세내역이 표시됩니다. 이 페이지는 다음 섹션으로 구성되어 있습니다.

실험 편집

이 섹션에서는 선택한 실험을 편집할 수 있습니다. 편집을 눌러 실험을 편집합니다.

주:

실행 중인 실험은 편집할 수 없습니다.

측정 단위 차트

모델 측정항목 차트는 실험이 실행될 때 시간에 따른 최적 측정항목 값을 보여줍니다. 실험 실행이 진행됨에 따라 정확도가 향상됩니다. 표시 이름은 실험을 작성할 때 선택한 모델 측정 단위에 따라 달라집니다.

리더 게시판

실험이 실행되면 리더 보드에 결과를 표시하기 시작합니다. 리더 보드에는 선택한 모델 측정지표를 기준으로 알고리즘 및 정확도와 함께 최상위 성과 모델이 표시됩니다. 모델 세부정보를 보고 다음 작업을 수행할 수 있습니다.

그림 6-10 리더 보드

리더 게시판
  • 모델 세부정보 보기: 모델 이름을 눌러 세부정보를 봅니다. 모델 세부정보 대화상자에 모델 세부정보가 표시됩니다. 리더 보드에서 여러 모델을 클릭하고 모델 세부 정보를 동시에 볼 수 있습니다. 모델 세부정보 창에는 다음이 표시됩니다.
    • 예측 영향: 모델의 대상 예측 측면에서 속성의 중요도를 표시합니다.
    • 혼란 매트릭스: 테이블에 알고리즘별로 실제 값과 예측 값의 서로 다른 조합을 표시합니다. Confusion Matrix는 머신 러닝 알고리즘의 성능 측정 역할을 합니다.
  • 배치: 리더 보드에서 모델을 선택하고 배치를 눌러 선택한 모델을 배치합니다. 모델 배치.
  • 이름 바꾸기: 이름 바꾸기를 눌러 시스템에서 생성한 모델 이름의 이름을 변경합니다. 이름은 영숫자(123자 이내)여야 하며 공백을 포함하지 않아야 합니다.
  • 메모장 생성: 리더 보드에서 모델을 선택하고 AutoML UI 모델에서 메모장 생성을 눌러 코드에서 선택한 모델을 재생성합니다.
  • 측정 단위: 측정 단위를 눌러 리더 보드에 표시할 추가 측정 단위를 선택합니다. 추가 측정항목은 다음과 같습니다.
    • 분류용
      • 정확도: 사례를 올바르게 분류하는 비율을 계산합니다(양수 및 음수 모두). 예를 들어 TP+TN+FP+FN(True Positives+True Negatives+False Positives+False Negatives) 사례에서 올바르게 분류된 총 TP(True Positives)+TN(True Negatives) 사례가 있는 경우 공식은 Accuracy = (TP+TN)/(TP+TN+FP+FN)입니다.
      • 균형 잡힌 정확도: 이진 분류기가 얼마나 좋은지 평가합니다. 특히 클래스가 불균형할 때, 즉 두 클래스 중 하나가 다른 클래스보다 더 자주 나타나는 경우에 유용합니다. 이는 종종 변형 감지 등과 같은 여러 설정에서 발생합니다.
      • 회수: 올바르게 분류된 실제 양수 비율을 계산합니다.
      • 정밀도: 실제 양수인 예측 양수의 비율을 계산합니다.
      • F1 점수: 정밀도와 리콜을 단일 숫자로 결합합니다. F1-점수는 공식에 의해 계산되는 조화 평균을 사용하여 계산됩니다. F1-score = 2 × (precision × recall)/(precision + recall)
    • 회귀의 경우:
      • R2(기본값): 데이터가 적합한 회귀선과 얼마나 가까운지를 계산하는 통계 측정 단위입니다. 일반적으로 R 제곱 값이 높을수록 모델이 데이터에 더 잘 맞습니다. R2의 값은 항상 0에서 1 사이입니다. 여기서,
        • 0는 모델이 평균 주위의 응답 데이터의 변동성을 설명하지 않음을 나타냅니다.
        • 1은 모델이 평균 주위의 응답 데이터의 모든 변동성을 설명함을 나타냅니다.
      • 네거티브 평균 제곱근(Negative Mean Squared Error): 이는 예측 대상과 실제 대상의 제곱된 차이의 평균입니다.
      • 음수 평균 절대 오류: 예측 대상과 실제 대상의 절대 차이의 평균입니다.
      • 음수 중간값 절대 오류: 예측 대상과 실제 대상 간의 절대 차이의 중간값입니다.

특징

기능 그리드에는 고유 값, 최소값, 최대값, 평균 및 표준 편차가 지원되는 experiment.The 통계에 대해 선택된 테이블의 통계가 표시됩니다. 기능에 대해 지원되는 데이터 소스는 테이블, 뷰 및 분석 뷰입니다. 예측에서 선택한 대상 열이 여기에서 강조 표시됩니다. 실험 실행이 완료되면 기능 그리드에 추가 열 중요가 표시됩니다. 피쳐 중요도는 특정 피쳐에 대한 예측의 전체 민감도 레벨을 나타냅니다. 그래프 위로 커서를 가져가면 중요도 값이 표시됩니다.값은 항상 0 ~ 1 범위에 표시되며 1에 가까운 값이 더 중요합니다.

그림 6-11 기능

기능 섹션

6.3.1 AutoML UI 모델에서 노트북 생성

동일한 설정을 사용하여 선택한 모델을 재생성하는 OML4Py 코드를 사용하여 노트북을 생성할 수 있습니다. 또한 모델을 사용하여 데이터에 점수를 부여하는 방법을 보여 줍니다. 이 옵션은 코드를 사용하여 유사한 머신 러닝 모델을 재생성하려는 경우에 유용합니다.

AutoML UI 모델에서 노트북을 생성하려면 다음을 수행합니다.
  1. Leader Board에서 노트북을 생성할 모델을 선택하고 Create Notebook을 누릅니다. [메모장 생성] 대화상자가 열립니다.

    그림 6-12 노트북 만들기

    노트북 생성
  2. 메모장 이름 필드에 메모장 이름을 입력합니다.
    REST API 엔드포인트는 실험 메타데이터를 파생시키고 다음과 같은 설정을 적절히 결정합니다.
    • 실험의 데이터 소스(schema.table)
    • 사례 ID. 실험에 대한 사례 ID를 사용할 수 없는 경우 적절한 메시지가 표시됩니다.
    • 현재 모델 이름을 기반으로 하는 고유한 모델 이름이 생성됩니다.
    • 점수부여 단락 관련 정보:
      • 사례 ID: 가능한 경우 사례 ID 열을 점수부여 출력 테이블로 병합합니다.
      • 빌드 데이터 소스 및 고유 접미어를 기반으로 고유한 예측 출력 테이블 이름 생성
      • 예측 열 이름: PREDICTION
      • 예측 가능성 열 이름: PROBABILITY(분류에만 적용 가능)
  3. 확인을 누릅니다. 생성된 노트북이 노트북 페이지에 나열됩니다. 눌러서 노트북 열기
    생성된 노트북은 python 코드와 함께 각 단락의 단락 제목을 표시합니다. 노트북을 실행하면 노트북과 관련된 정보와 AutoML 실험(예: 노트북이 있는 실험 이름, 작업 공간 및 프로젝트, 사용자, 데이터, 예측 유형 및 예측 대상, 알고리즘, 노트북 생성 시 시간 기록)이 표시됩니다. AutoML UI 생성 노트북