ELEC5307 깊은 학습


ELEC5307 깊은 학습
프로젝트 # 1 : 신경망의 매개 변수
로 인해 : 2019년 10월 11일 오후 11시 59분
1 목적
이 실험은 깊은 신경망의 기본 기술을 소개하는 것을 목표로하고있다. 이 실험에서
당신은 것입니다 :
• 이미지를로드하고 분류 신경망을 훈련 PyTorch를 사용하는 방법에 대해 알아보세요.
• 길쌈 층, 풀링 층, 완전히 연결 층의 기능을 이해
하고이 softmax 층 등
• 활성화 방법 숙지, 풀링 및 초기화 방법.
• 성능 향상을 위해 적절한 하이퍼 파라미터를 선택 알아보세요.
• 매개 변수에 기여하는 방법을 서로 다른 학습 결과와 목표를 시각화
최종 성능을 제공합니다.
이 개 지침
2.1 데이터 설명 : CIFAR-10
당신은 CIFAR-10 이미지 데이터 세트를 사용해야합니다. CIFAR-10 데이터 세트는 60000 개 이미지로 구성
클래스 당 6000 개 이미지, 10 개 클래스에서. 50000 개 교육 이미지 만 개 테스트가 있습니다
게시자에 의해 분할되는 이미지는. 데이터 세트의 세부 사항과 다운로드에
https://www.cs.toronto.edu/~kriz/cifar.html
클래스는 '비행기', '자동차', '새', '고양이', '사슴'를 포함 '개', '개구리', '말', '배'
와 '트럭'. 모든 이미지는 수동으로 표시되며, 각 이미지는 하나의 라벨이 포함되어 있습니다.
CIFAR-10의 이미지 크기 3x32x32 크기 32 × 32 픽셀, 즉 3 채널의 컬러 화상이다. 에서

代写ELEC5307课程는代做신경망을
일부 적용, 각 화상은 이미 3072의 치수를 갖는 벡터로 재 성형 된
(= 3 × 32 × 32).
PyTorch, 당신은 자동으로 할 수있는 기능 torchvision.datasets.CIFAR10를 사용하여
데이터 세트와로드 기능 torch.utils.data.DataLoader 다운로드하고 읽을
네트워크에 데이터 (교육 및 테스트).
2.2 하이퍼 파라미터
하이퍼 파라미터는 신경망 훈련에있는 당신의 성공에 매우 중요하다. 신경의 무게
네트워크는 학습 동안 수정되고, 하이퍼 파라미터는에 기여
입력 이미지의 변경, 무게의 수 및 가중치를 업데이트하는 방법. 이리
하이퍼 파라미터의 일부 그룹이다. 더 하이퍼 파라미터와 PyTorch에서의 사용을 위해,
공식 문서 웹 사이트 (https://pytorch.org/docs/stable/index.를 참조하십시오
HTML)와 PyTorch 포럼 (https://discuss.pytorch.org).
깊은 학습 한
프로젝트 # 1 : 신경망의 매개 변수
2.2.1 변환
이 입력 이미지에 영향을 미칠 것이다. 변환을 수행하는 기본적인 아이디어는 데이터를 추가하는 것입니다
(깊은 학습 데이터 증가라는). 신경 네트워크는 많은 가중치를 포함
많은 이미지를 필요로하는 수정합니다. 그러나 제공된 데이터는 항상 충분하지 않습니다. 함으로써
변형을 만드는 하나 개의 이미지가 다른 패치들을 이용하여 네트워크에 공급 될 수 또는
훈련 집합의 크기를 증가시킬 수있다 크기.
이러한 작업은 torchvision.transforms에 포함되어 있습니다. 옵션 중 일부는 다음과 같습니다
• 크기 조정 : 이미지가 정사각형 이미지 또는 큰 / 작은 크기를 조정할 수 있습니다. 거의 모든
변환은 크기 조정 작업이 필요합니다.
• 작물 : 당신은 센터 (CenterCrop), 또는 중앙 플러스 네 모서리 (FiveCrop),자를 수 있습니다
임의의 위치 ((RandomCrop))이나 작물.
• 플립 : 이미지는 다른 시각에서 발생하므로 가로 (RandomHorizontalFlip) 플립있다
이미지의 더 많은 가능성을 제공 할 수 또는 수직 (RandomVerticalFlip 참조).
• 아핀이 회전 또는 번역하여 이미지를 수정합니다. prede-에 적합하지 않습니다
미세하기 때문에 화상의 다양성의 일부 아핀 함수 만 포함되도록 torchvision
(RandomAffine).
• 화상의 화소 값을 정규화 정규화 [0, 1]이 동작을 이용하여.
당신은 당신이 경우 글로벌 평균과 전체 데이터 세트의 표준 편차를 사용할 필요가
처음부터 모델을 학습. 일부 모델에서 모델을 미세 조정하고 싶을 경우
ImageNet에 pretrained, 당신은 ImageNet의 값을 사용해야합니다.
정규화 작업이 데이터 증가에 대한하지만 더 빠르고 아님을 유의하시기 바랍니다
융합. 위에서 언급 한 나머지 네 개의 작업은 데이터 증가에 사용됩니다.
2.2.2 네트워크 구조
이들 파라미터는 뉴럴 네트워크의 구조에 영향을 미칠 것이다. 가장 중요한
표시기는 파라미터의 수와 거의 동일한 네트워크의 용량이다.
이 경우, 깊은 네트워크가 넓은, 더 나은 잠재적 인 성능이 수
제공합니다. 그러나 매개 변수를주의 깊게 제한되어 있는지 확인해야합니다.
동작은 (torch.nn)에 포함되어 있습니다. 옵션 중 일부는 다음과 같습니다
• 깊이 : 대략 말하기, 깊은 네트워크를 더 잘 제공 할 수있는 잠재력 것입니다
결과를. 네트워크가 깊은 될 때,으로 훈련하는 것이 더 어려울 것이다
그라디언트가 사라지게하거나 폭발 할 위험이 더 가능합니다.
• 활성화 기능 : 가장 일반적으로 사용되는 ReLU, TANH 및 S 상이다.
기능은 신경 네트워크 비선형 성을 제공합니다.
• 풀링 방법 : 일반적인 선택은 최대 풀링 (MaxPool2d) 평균 풀링 있습니다
(AvgPool2d). 풀링 층의 크기와 보폭이 기능의 크기가 변경됩니다
지도 (즉, 폭과 높이).
• 채널 크기 : 3, 출력 (컬러 채널 R / G / B 세 경우) 입력 채널이
(10 CIFAR 10) 클래스의 수 있어야 채널. 얕은 층에서 깊은에
레이어, 채널 번호는 항상 점차 (너비와 높이 숫자가 증가
감소). 채널 번호, 둘 다 기대에 필요한 더 많은 시간 큰
뒤로 과정. PyTorch에 완전히 연결 층을 기본적으로 정의 될 수있는
선형 (채널, 출력 채널), 2-D 컨벌루션 층은 기본적으로 정의 될 수있다
Conv2d로 (채널, 채널, 커널 아웃).
ELEC5307 깊은 학습이
프로젝트 # 1 : 신경망의 매개 변수
길쌈 매개 변수 • : 커널 크기는 제로 패딩 번호와 보폭에 영향을 미칠 것
= (Winput-커널 + 2 × (P)가 추가) woutput 여러 / 보폭 +하여 출력 폭과 높이를
1. 기본적으로 3 × 3으로 5 × 5, 7 × 7 커널 크기를 사용하도록 시도 할 수 있습니다, 우리는 원하지 않는
당신이 보폭 선택할 수 있도록 길쌈 층, 기능 맵의 너비 / 높이를 변경
따라 제로 패딩을. 당신은 커널의 크기가 예를 들어, 5 × 5, 우리는 항상 필요한
1과 제로 2와 패딩과 보폭
이 계층 (드롭 아웃) 정규화하는 방법은 무작위로 설정합니다 : • 드롭 아웃
있는 해당하는 일부 무게에 0을 층.
2.2.3 교육 과정이
교육 과정은 데이터가 네트워크로 공급되고, 무게가되는 방법을 방법에 의해 영향을 받는다
초기화 및 업데이트되었습니다. 데이터는 torch.utils.data.DataLoader를 사용하여 네트워크에 공급된다.
옵션 중 일부는 다음과 같습니다
• 셔플 : 기본적으로, 우리가 일반적으로 교육 및 검증 부분에서 입력 데이터를 셔플
하고 테스트 부분에서 입력 데이터를 셔플하지 않습니다.
• 배치 크기 : 큰 배치 크기는 종종 더 나은 결과를 얻을 수 있지만이 제한됩니다 도움이 될 수 있습니다
메모리 크기 (컴퓨터 메모리 또는 GPU 메모리). 이 몇 가지 예외가 또한
큰 배치 사이즈의 성능을 악화시킬 것이다, 그래서 당신은 신중해야
이 값을 선택.
웨이트 pretrained 모델 또는 torch.nn.init 사용하여 초기화 될 수
있는 옵션이 사비, 노멀 균일하고 일정한 포함를 등
가중치는 목적 함수를 최적화에 따른 후방 처리에서 갱신 될
함수 학습 율. 목적 함수는 특수 레이어로 처리됩니다
torch.nn에서 PyTorch 및 최적화 작업은 torch.optim에서 찾을 수 있으며,
몇 가지 옵션은 다음과 같이 나열되어 있습니다 :
• 신기원 : 한 시대가 네트워크에 의해 훈련되어있는 기간을 의미합니다 모든보고
훈련 이미지를. 여러 시대 후, 훈련 손실 및 검증 정확도가되지 않습니다
많은 변경합니다. 당신은 최고의 정밀도를 얻기 위해 시대의 좋은 번호를 설정해야
하고 overfitting 마십시오.
• 목적 함수 : 교차 엔트로피 손실 (torch.nn.CrossEntropyLoss)이 항상
분류 문제에 사용됩니다. 소프트 마진 손실 (torch.nn.SoftMarginLoss)
및 최소 제곱 오차 (torch.nn.MSELoss)도 주로 바이너리 구분 단에 포함되는
양이온 문제.
• 업데이트 방법 : 일반적으로 사용되는 방법은 아담 (torch.optim.Adam)하고있다
SGD (torch.optim.SGD). 판단 할 수있는 파라미터는 기지국 포함
비율 (LR)을 학습 운동량 레이트 ((모멘텀)) 및 regularizer 중량 ((중량 감쇠)).
당신은 또한 다른 레이어에 다른 학습 속도를 설정할 수 있습니다.
• 기본 학습 속도 : 극적으로 가중치를 변경합니다 (0.1 정도) 큰 학습 속도,
처음부터 모델을 훈련 때 유용 할 것이다. 작은 학습 속도
(0.01 0.0001)는 pretrained 모델에서 미세 조정에 도움이 될 것입니다.
• 속도 스케줄러를 학습 : 교육이기 때문에 학습 속도를 줄일 필요가
진행. 일반적으로 사용되는 단계, 다단계, 지수이다. 당신은 쓸 수 있습니다
직접 업데이트 정책 또는 torch.optim.lr 스케줄러의 방법을 사용합니다.
ELEC5307 깊은 학습 3
프로젝트 # 1 : 신경망의 매개 변수
2.3 결과 분석을
성공적으로 깊은 학습 모델을 학습하기 위하여는, 네트워크의 결과는 신중해야한다
분석했다. 결과를 분석하는 가장 좋은 방법은 값을 시각화하는 것입니다.
• 교육 및 검증 모두 손실 곡선. 이상적으로, 모두 손실이 감소해야하고
여러 신 (新) 시대 이후에 수렴. 훈련 손실이 여전히 추락하지만 검증 경우
손실이 증가하고, 다음 모델은 overfitting된다. 때 손실이 여전히 추락하는 경우
작업을 마치면, 다음 모델은 단순성과됩니다. 당신은 모두 상황을 피하려고한다
시대의 합리적인 번호입니다.
• 정확도는 훈련 설정 및 검증 세트에 변경합니다. 숫자가 증가한다
에포크가 증가하고있다. 패턴은 손실의 변화하지만 유사해야
반대 방향이다.
3 개 실험
실험에서, 당신의 작업이 CIFAR10의 분류에 대한 신경 네트워크를 구축하는 것입니다
다른 하이퍼 파라미터로부터 생성 된 결과를 분석한다. 당신의 작업은 세 부분으로 포함되어 있습니다.
• 첫 번째 부분은 기준 모델을 실행하는 방법에 대한 것입니다. 당신은 기본 모델을 실행해야하는
시각화 결과를 제공합니다.
• 두 번째 부분은 주어진 옵션에서 적절한 매개 변수를 찾는 것에 대해입니다. 당신은 것입니다
배치 크기, 기본 학습 속도와 신 (新) 시대의 수의 몇 가지 옵션을 부여 할,
가장 좋은 얻기 위해 모든 세 가지 하이퍼 파라미터의 최적 조합을 찾아보십시오
성능을.
• 세 번째 부분은 다른 옵션에 관한 것입니다. 당신은 첫째로 새로운 기준 모델을 훈련 할 필요가
부록에 따라 다음 : 파트 3에 대한 작업은 각 하이퍼 파라미터의 효과를 분석
하여 결과.
다음과 같이 자세한 설명입니다.
3.1 1 부 :베이스 라인 구조는
당신이 먼저 'baseline.ipynb'파일을 통해 이동하고 기본 코드를 실행해야합니다. 이 파일은
https://pytorch.org/tutorials/ : PyTorch에서 공식 튜토리얼을 기반으로 수정
_downloads / cifar10_tutorial.ipynb. 그러나, 그들의 설정에서 멀리 참고하시기 바랍니다
이상적입니다.
당신이 그들의 코드를 사용하는 경우이 기준과 다른 참조를 들어, 의견에서 지적 해주십시오
과 '참조'부분에 제출의 끝에서. 모든 사용하는 경우 처벌됩니다
자신이 아무 것도 변경하지 않고 다른 사람의 코드를. 당신은 또한 당신이 사용하는 경우 처벌된다
다른 사람의 코드를하지만 제출에 표시하지 않았다.
교육, 검증 및 테스트 : 당신은 세 부분으로 데이터 집합을 분할 할 필요가있다. 시험
데이터 세트는 기본적으로 준비하고 있습니다 (항상보다 작은 여러 이미지를 분리 할 필요가
훈련에 검증 세트로 테스트 세트의 수). 검증 세트는 방지하는 데 도움이됩니다
overfitting 문제.
이러한 네트워크의 한 시대를 실행하기위한 평균 시간은 따라 약 1~5분입니다
귀하의 CPU / GPU의 종류에. 데이터 세트가 매우 크기 때문에 속도는 낮다. 이 경우,
당신은 무작위로 성능을 확인하기 위해 원본 데이터 셋에서 비트 데이터를 선택하기 위해 시도 할 수 있습니다.
빠르게 볼 수 있도록 대규모 데이터 세트에 직면 할 때이 기술은 매우 유용
대신 오랜 시간 동안 기다리는 결과를.
ELEC5307 깊은 학습 4
프로젝트 # 1 : 신경망의 매개 변수
3.2 파트 2는 : 선택 hyperparamaters가
성공적으로이 네트워크를 양성하려면, 적절한 배치 크기를 선택해야 학습의 기초
속도와 시대의 수입니다. 옵션은 다음과 같습니다 :
• 배치 크기 : 2, 4, 8
• 기본 학습 속도 : 0.005, 0.001, 0.0005, 0.0001, 0.00005, 0.00001
시대의 • 수 : 1, 2, 4, 8, 16,
귀하의 작업을 선택하는 것입니다 도움이 될 것입니다 하이퍼 파라미터는 최고의 얻을 수있는 네트워크를 훈련하는
테스트 세트의 성능을. 한편, 교육 시간은 가능한 한 짧아야
당신도이 수렴 슈퍼 오랫동안 네트워크 교육 두지한다는 뜻
손실 곡선에서 판단합니다.
당신은 여러 번에 대한 코드를 실행 해당 손실 곡선을 그릴로되어있다
교육 및 확인을 위해, 검증 및 테스트의 정확성을 계산하고, 마지막으로 만들
결정을. 이 부분에 대한 주어진 네트워크에있는 다른 하이퍼 파라미터를 변경하지 마십시오.
기록 용 부분에서, 당신의 출력 이미지와 분석을 제공하십시오. 귀하 분석한다
을 포함 하나 이에 국한되지 않습니다 :
• 경험적으로 어떤 실험을하지 않고 무시 될 수있는 선택은 무엇입니까?
당신이 실험을 수행 한 후 당신은 정확했다?
네트워크가 수렴 할 때 얼마나 많은 시대를 전달 •?
• 왜 너무 크거나 너무 작은 학습 속도가 좋은 선택하지?
• 사용중인 컴퓨터의 사양은 무엇입니까? 예를 들면 CPU / GPU 유형 및
대응하는 메모리.
• 얼마나 획기적인를 실행합니까? 당신은 속도를 원래의 데이터 세트의 샘플을 사용 했
진행 상황을, 어떻게 작동 했는가?
어떤 overfitting 문제 • 있는가?
3.3 파트 3 : 다른 하이퍼 파라미터
지금은 당신이 신경 네트워크를 양성 할 수있는 능력을 가지고로되어있다. 의 나머지
실험은 기준으로 새로운 신경 네트워크를 구축하고 다른 놀이하는
하이퍼 파라미터.
당신이 다른 미리 정의 된 신경망의 구조를 배운 있지만됩니다
: 당신은 단지 포함하는 네트워크를 구축해야하는 대신 프로젝트 1에서 사용할 수 없습니다
각 길쌈 한 후 활성화 기능과 풀링 층으로, • 3 길쌈 레이어
층 .
바로 지난 풀링 층 후 • 3 완전히 연결 층. 할 기억하십시오
지도가 흘러 기능하기 위해 (기능보기 사용) 데이터 형태의 변경
원활 완전히 연결 계층을.
1도 완전히 연결 층 출력층,하지만 출력 • 채널 10이어야한다
(클래스의 수).
채널 크기와 길쌈 매개 변수의 경우, 당신은 당신의 자신의 하이퍼 파라미터를 자유롭게 선택할 수 있습니다.
당신이 CPU를 사용하여 네트워크를 훈련하기로되어 있기 때문에, 제발하지
ELEC5307 깊은 학습 5
프로젝트 # 1 : 신경망의 매개 변수는
채널의 매우 많은 수의 레이어를합니다. 컨벌루션 층에 대한 채널 번호
256 이하 여야한다, 완전히 층을 연결하기위한 채널 번호가 전혀 없어야
1024보다 큰를
당신이 당신의 기본 모델을 구축 한 후에는 세 종류의 분석을 할 필요가
하이퍼 파라미터. 당신이 함께 연극을하려고하는 하이퍼 파라미터는 SID에 의해 정의 된
작업을 3 편에 대한 부록에 표시된. 세 개의 하위 각각에 대해, 당신은 모두와 함께 재생할 수있는
방법의 매개 변수. 예를 들어, 체중 부패와에 대한 임의의 숫자를 선택할 수 있습니다
당신은 SGD와 함께 연주하는 경우 추진력을.
세 가지 작업을 분석하고 자신의 네트워크에 대한 최선의 선택을 선택하십시오. 당신은 할 수 있습니다
또한 더 나은 각 선택에 맞게 2.2 절에있는 다른 하이퍼 파라미터를 변경, 예를 들어, 배치 크기,
등 속도, 학습,하지만 당신은 분석을하면서 변수를 제어하기 위해 기억하시기 바랍니다. 제발
당신의 기준 네트워크를 기반으로 하이퍼 파라미터의 당신의 수정 또는 수 있습니다
정확성을 개선하지 않을 수 있습니다. 당신은 하이퍼 파라미터가 영향을 미치는 방법을 알아낼 필요가
결과를 이유를 설명. 분석은 .ipynb 파일에 기록 된 부분에 포함되어야한다.
당신은 당신의 기준이 포함 ONE 하나의 파이썬 파일 (안 .ipynb 파일)을 쓸 필요가
당신의 훈련 파일을 네트워크와 수정 된 네트워크를이 파이썬 파일의 출력은
자신의 모델을 기반으로 테스트 세트의 정확도해야한다. 테스트 데이터 세트에 대한 귀하의 정확도
도 높은 중베이스 라인 또는 수정 된 네트워크를 기반으로 표시됩니다.
4 제출 및 성적은
당신이 직접이 프로젝트를 완료하기로되어있다. 귀하의 제출은 Jupyter에 포함해야
노트북 ( 'project1.ipynb') 당신의 수정과 서면 분석 및 파이썬 파일을
각각 당신의 훈련 모델 (이름이 'baseline.pth'와 'modified.pth'로 ( 'project1.py를') ).
파일은와 '프로젝트 1 FIRSTNAME의 LASTNAME의 yourSID.zip'로 명명 된 .zip 파일에 있어야
파일 이름에 공백과 캔버스를 통해 제출. .zip 파일이 일부 포함 할 수 있습니다
필요한 경우 이미지를. 귀하의 코드는 주석이 잘해야하고,에 기록 된 일부
노트북 파일은 명확한 부분이 필요합니다. 최종 성적은 다음을 기준으로 부여됩니다
기준. 자세한 마킹 기법은 부록을 참조하십시오 : 계획을 표시.
• 귀하의 제출은 엄격하게 지침을 따라야합니다.
• 귀하의 정확도는 새로운 기준 네트워크 또는 사용 중 더 작은 70 % 이상 할 필요가
수정 된 네트워크를.
• 귀하의 코드는 정확하고 잘 조직이다. 귀하의 코드는 잘 주석과
참고 문헌은 분명하다.
• 서면 부분은 잘 조직하고 몇 오타를 가지고있다. 이 보고서는 포함해야
그들이 필요한 때 올바른 공식을.
• 당신은 당신이 할당 된 모든 세 개의 하이퍼 파라미터를 적용했다. 잘못된 한 경우
작업을 해당 분석은 표시되지 않으며 당신은 또한 처벌됩니다.
• 시각화 결과는 명확하고 잘 정의한다.
• 당신은 매개 변수로 통찰력을 보여 일부 합리적인 결론을 그린.
• 급우에서 아무 사본. 당신과 당신의 친구들 중 일부는에서 코드를 복사 한 경우
같은 온라인 자원이 수정을하거나하지 않는 경우, 당신은 또한 범됩니다
참조를 제공합니다.
• 당신이 언급 된 모든 코드 및 논문에 대한 참조를 지정합니다.
ELEC5307 깊은 학습 (6)
프로젝트 # 1 : 신경망의 매개 변수
부록 : 파트 3에 대한 작업
작업은 당신이 당신의 SID (에 9 자리의 마지막 세 자리에 의존 할 건데
학생 카드).
숫자 변환 (3 마지막 숫자) 구조 (2 마지막 자리) 교육 (마지막 자리)
0/1 RandomCrop + 크기 조정 채널 번호 LR 스케줄러 : 지수
활성화 방법 LR 스케줄러 리사이즈 + 2/3 플립 단계 :
4/5 아핀 + 리사이즈 스케줄러 LR 강하 층을 추가 다단계
6/7 CenterCrop / FiveCrop + 리사이즈 커널 크기 LR 스케줄러 : 람다
8/9 평준화 + 리사이즈 풀링 방법 최적화 : SGD를 설정은
사용자의 SID가 470XXX364 경우 예를 들어, 당신의 선택은 플립 + 크기 조정, 커널 크기 여야합니다
다단계 : 및 LR 스케줄러.
보고서에서는 주로 당신이 할당 된 선택을 고려해야합니다. 또한 시도 할 수 있습니다
당신은 그들이 더 적합하다고 생각하면 다른 설정을하지만, 당신은 당신의 변수를 제어 할 필요가
분석.
당신은 당신의 친구들에게 유사한 작업을 할당 할 수있다. 그러나 각 작업은 많은이 포함됩니다
선택, 각각의 선택은 몇 가지 매개 변수를 포함 할 것이다, 그래서 당신의 선택과 과정이 될 수 없습니다
당신이 다른 사람의 작품을 복사하지 않는 유사합니다. 이 경우, 부정 행위를 쉽게 볼 수 있습니다 될 것이다
처벌.
부록 : 표시 제도
프로젝트 1의 총 마크는 최종 점수 (20), 및 파트 1, 파트 2와 파트 3 개 계정 인
19 %, 각각 21 %, 40 %, 20 %를 형식화하는 및 제출 차지한다. 숫자
다음 차트는 비율에 있습니다.
파트 1은
성공적 4 주어진 .ipynb 실행
정확하게 검증 데이터 세트를 분할 5
정확한 손실 정확도 그리는 곡선 10
(2 점씩) 6 개 부 2- 올바른 선택을
잘 분석 (5 점씩) 15
부 (3)

전문, 그래서 신뢰할 수 있기 때문에. 필요한 경우, QQ를 추가하십시오 : 99,515,681 또는 이메일 : [email protected]

마이크로 편지 : codehelp

추천

출처www.cnblogs.com/JAVAHELP/p/11593763.html