Tải bản đầy đủ (.pdf) (23 trang)

Đồ án cuối kì môn xử lí ngôn ngữ tự nhiên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.8 MB, 23 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

<b>TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CÔNG NGHỆ THƠNG TIN </b>

<b>ĐỒ ÁN CUỐI KÌ MƠN XỬ LÍ NGƠN NGỮ TỰ NHIÊN </b>

<i><b>Người hướng dẫn: PGS TS Nguyễn Tuấn Đăng Người thực hiện: ĐẶNG HOÀNG DUY - 520H0041 </b></i>

<b>NGUYỄN HOÀNG PHÚC KHANG 520H0066 –</b>

<i>Lớp : 20H50201 </i>

Khóa : K24

<b>THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

<b>TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG </b>

<b>KHOA CÔNG NGHỆ THÔNG TIN </b>

<b>ĐỒ ÁN CUỐI KÌ MƠN XỬ LÍ NGƠN NGỮ TỰ NHIÊN </b>

<i><b>Người hướng dẫn: PGS TS Nguyễn Tuấn Đăng Người thực hiện: ĐẶNG HOÀNG DUY - 520H0041 </b></i>

<b>NGUYỄN HOÀNG PHÚC KHANG – 520H0066 </b>

<i>Lớp : 20H50201 </i>

Khóa : K24

<b>THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024 </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG </b>

Nhóm chúng em xin cam đoan đây là cơng trình nghiên cứu của riêng chúng em và được sự hướng dẫn khoa học của thầy Nguyễn Tuấn Đăng Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa cơng bố dưới bất kỳ hình thức nào trước đây. Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập các nguồn kháctừ nhau có ghi rõ trong phần tài liệu tham khảo.

Ngoài ra, trong báo cáo còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc.

<b>Nếu phát hiện có bất kỳ sự gian lận nào </b>nhóm chúng em <b>xin hồn tồn chịu trách nhiệm về nội dung Báo cáo cuối kì Xử Lí Ngơn Ngữ Tự Nhiên của mình. Trường </b>

Đại học Tôn Đức Thắng không liên quan đến những vi phạm tác quyền, bản quyền do chúng em gây ra trong q trình thực hiện (nếu có).

<i>TP. Hồ Chí Minh, ngày tháng năm </i>

<i>Tác giả</i>

<i>(Ký tên và ghi rõ họ tên)Nguyễn Hoàng Phúc Khang </i>

<i>Đặng Hoàng Duy </i>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>BÁO CÁO CUỐI KÌ XỬ LÍ NGƠN NGỮ TỰ NHIÊN TÓM TẮT </b>

Dự án này tập trung vào phân loại ý kiến người dùng sử dụng các mơ hình học máy và học sâu để hiểu và đánh giá các ý kiến được chia sẻ trên mạng. Đầu tiên, dữ liệu đa dạng từ các nguồn như trang web xã hội, diễn đàn, và đánh giá sản phẩm được thu thập và tiền xử lý để chuẩn hóa. Sau đó, mơ hình học máy được huấn luyện để phân loại ý kiến thành các nhóm khác nhau như tích cực, tiêu cực hoặc trung tính. Ngồi ra, các mơ hình học sâu như mạng nơ-ron hồi quy và mạng nơ nơ-ron ngữ liệu được tích hợp để nâng cao khả năng hiểu ngôn ngữ tự -nhiên và ngữ cảnh của ý kiến. Quá trình đánh giá và tinh chỉnh liên tục được thực hiện để cải thiện độ chính xác và đồng nhất của mơ hình. Kết quả của dự án cung cấp thông tin quan trọng về xu hướng ý kiến người dùng đối với một sản phẩm, dịch vụ hoặc chủ đề cụ thể. Điều này có thể hữu ích cho các doanh nghiệp trong việc đánh giá tiếp thị, phản hồi sản phẩm, và tối ưu hóa chiến lược kinh doanh dựa trên ý kiến và phản hồi của người dùng.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>MỤC LỤC </b>

<b><small>TÓM TẮT ... 4</small></b>

<b><small>DANH MỤC CÁC CHỮ VIẾT TẮT ... 6</small></b>

<b><small>CHƯƠNG I: GIỚI THIỆU ... 7</small></b>

<b><small>CHƯƠNG II: TIỀN XỬ LÍ DỮ LIỆU ... 8</small></b>

<b><small>1. Thu thập dữ liệu: ... 8 </small></b>

<b><small>2. Tiền xử lí: ... 8 </small></b>

<b><small>CHƯƠNG III: TRIỂN KHAI ... 11</small></b>

<b><small>1. Giới thiệu thuật toán sử dụng: ... 11 </small></b>

<small>a) CNN: 11 b) RNN:13</small> <b><small>2. Triển khai: ... 14 </small></b>

<b><small>3. Tối ưu hóa bằng Hyperparameter: ... 16 </small></b>

<b><small>CHƯƠNG IV: KẾT QUẢ ... 20</small></b>

<b><small>TÀI LIỆU THAM KHẢO ... 23</small></b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>DANH MỤC CÁC CHỮ VIẾT TẮT </b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>CHƯƠNG I: GIỚI THIỆU 1. Mô tả bài toán: </b>

Dự án hiện nay tập trung vào việc phát triển một hệ thống phân loại ý kiến người dùng dựa trên sức mạnh của mơ hình học máy và học sâu. Nhiệm vụ chính của dự án là tự động phân loại và hiểu ý kiến được chia sẻ trực tuyến, từ các nguồn đa dạng như mạng xã hội, diễn đàn và các trang đánh giá sản phẩm.

Quá trình bắt đầu bằng việc thu thập dữ liệu rộng lớn, đa dạng và sau đó tiến hành các bước tiền xử lý để chuẩn hóa dữ liệu và tạo nền tảng cho việc huấn luyện mơ hình. Các mơ hình học máy được triển khai để phân loại ý kiến thành các nhóm khác nhau như tích cực, tiêu cực hoặc trung tính. Đồng thời, tích hợp các mơ hình học sâu như mạng nơ ron hồi quy và mạng nơ ron ngôn ngữ giúp nâng cao khả năng hiểu ngôn ngữ - -tự nhiên và ngữ cảnh của ý kiến.

Dự án không ngừng thực hiện quá trình đánh giá và điều chỉnh để cải thiện hiệu suất của mơ hình, đảm bảo độ chính xác và đồng nhất. Kết quả thu được từ dự án cung cấp thơng tin tồn diện về cảm nhận của người dùng, hỗ trợ doanh nghiệp trong việc đánh giá chiến lược tiếp thị và quản lý phản hồi sản phẩm. Điều này không chỉ mang lại lợi ích trong quản lý doanh nghiệp mà cịn hỗ trợ quyết định dựa trên ý kiến đa dạng của cộng đồng trực tuyến.

<b>2. Mục tiêu: </b>

Mục tiêu chính của dự án này là xây dựng một hệ thống phân loại ý kiến người dùng sử dụng mơ hình học máy và học sâu. Dự án đặt ra nhiệm vụ tăng cường khả năng hiểu và phân loại ý kiến từ các nguồn đa dạng trên internet. Đồng thời, mục tiêu cũng bao gồm việc tối ưu hóa hiệu suất của mơ hình để đảm bảo độ chính xác và ứng dụng linh hoạt trong nhiều bối cảnh khác nhau. Hệ thống sẽ tự động hóa quy trình từ việc thu thập dữ liệu đến đánh giá và tinh chỉnh mơ hình, giúp tối ưu hóa q trình làm việc. Mục tiêu cuối cùng là đưa hệ thống vào ứng dụng thực tế để hỗ trợ doanh nghiệp trong việc hiểu rõ hơn về ý kiến người dùng và thúc đẩy sự đổi mới và cải thiện.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG II: TIỀN XỬ LÍ DỮ LIỆU 1. Thu thập dữ liệu: </b>

Dữ liệu được sử dụng là IMDB Dataset of 50K Movie Reviews, bao gồm những thuộc tính sau:

- Review: sẽ bao gồm giá trị là những lời nhận xét độc nhất từ tiêu cực đến tích cực, bao gồm 49582 giá trị khác nhau.

- Sentiment: sẽ bao gồm 2 giá trị negative và positive biểu thị lời nhận xét theo huynh hướng tiêu cực hay tích cực.

Bài báo cáo này sẽ tập trung sử dụng dataset này để xây dựng mơ hình đánh giá phân loại ý kiến người dung.

<b>2. Tiền xử lí: </b>

Một số kỹ thuật xử lý trước dữ liệu được áp dụng ở đây như sau:

- Làm sạch văn bản: iết thường, oại bỏ các ký tự và số đặc biệt, v l xử lý các từ viết tắt

- Loại bỏ các từ phổ biến ừ gốc hoặc bổ ngữ: Rút gọn các từ về dạng gốc hoặc , t gốc của chúng

- Nhãn mã hóa: sử dụng các kỹ thuật như LabelEncode để chuyển đổi chúng sang định dạng số Tokenization Padding Vectorization: Chuyển đổi dữ liệu văn bản thành định dạng số mà có thể được sử dụng làm đầu vào cho các mơ hình học máy. Các kỹ thuật như TF IDF (Tần số nghịch đảo tần số thuật ngữ) hoặc nhúng -từ (Word2Vec, GloVe) có thể được sử dụng cho mục đích này.

Sau đây là cách triển khai q trình tiền xử lí:

<small>#Remove punctuations:</small>

<small>imdb_data['review'] = imdb_data['review'].apply(lambda x re.sub:('[%s]' % re.escape(string.punctuation),'' x,))</small>

<small>#Removing words and digits (combined):</small>

<small>imdb_data['review']= imdb_data['review'].apply(lambdaxre.sub('W\d+w*','', ))x</small>

<small>#removing stopwords taking the help of nltk library:from nltk.corpus import stopwords </small>

<small> return" ".join([word for word instr(text .split)()if word not in</small>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<small>#remove tag</small>

<small> return TAG_RE.sub('',text)</small>

<small>imdb_data['review']=imdb_data['review'].apply(lambda x:remove_tags()) #stemming:</small>

<small>from nltk.stem.porter import PorterStemmer ps=PorterStemmer()</small>

<small> return ps.stem(word)</small>

<small>imdb_data['review']=imdb_data['review'].apply(lambda x:stemming())#removing extra space:</small>

<small>imdb_data['review'] = imdb_data['review'].apply(lambda x re.sub:(' +',' 'x))</small>

<small>#Converting the target variable imdb['sentiment'] to numerical values:encoder=LabelEncoder()</small>

<small>encoder.fit imdb_data(['sentiment'])</small>

<small>imdb_data['sentiment']=encoder.transform imdb_data(['sentiment'])pos_pct=sum(imdb_data['sentiment'])/len(imdb_data['sentiment'])pos_pct </small>

Tiếp theo, chúng ta thực hiện việc chia dữ liệu thành hai phần: một phần được sử dụng để huấn luyện mơ hình (train) và phần cịn lại được sử dụng để kiểm thử mơ hình (test).

<small>#dividing the data into train and test split:</small>

<small>x_tr x_val y_tr y_val=train_test_split imdb_data,,,(['review'],imdb_data['sentiment'],test_size=0.2,random_state=104,shuffle=True) </small>

<small>y_train=np.array y_tr()y_test=np.array y_val()</small>

Cuối cùng là chuyển đổi văn bản thành các token số. Kĩ thuật Tokenization sẽ chia văn bản thành câu, câu thành từ, sau đó xử lí các trường hợp đặc biệt, loại bỏ những từ thừa hay khơng mong muốn và chuẩn hóa từ ngữ. Việc làm này sẽ giúp xử lí văn bản có thể xử lí, giảm chiều dài của dữ liệu giúp việc xây dựng mơ hình dễ dàng và chính xác hơn.

<small>#Tokenizing the sequences:tokenizer=Tokenizer()tokenizer.fit_on_texts x_tr()</small>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<small>word_index=tokenizer.word_index </small>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<b>CHƯƠNG III: TRIỂN KHAI 1. Giới thiệu thuật toán sử dụng: </b>

Ở đây chúng ta sẽ sử dụng mạng lưới thần kinh Convolutional Neural Network (CNN) và Recurrent Neural Network (RNN).

a) CNN:

Về CNN, là một trong những mô hình Deep Learning tiên tiến nhất hiện nay. Nó được thiết kế dựa trên nơ ron tích chập, đặc biệt mạnh mẽ trong việc xây dựng các hệ -thống có độ chính xác và thơng minh cao. Sức mạnh của CNN được thể hiện rõ khi áp dụng vào nhiều lĩnh vực, đặc biệt là trong bài tốn nhận dạng vật thể trên ảnh.

CNN đóng vai trò quan trọng trong việc phát triển các hệ thống nhận diện thơng minh, mang lại độ chính xác cao trong bối cảnh công nghệ ngày nay. Điều này là do CNN không chỉ giúp nhận dạng vật thể mà cịn có khả năng tự học các đặc trưng quan trọng từ dữ liệu, tạo ra các biểu diễn hiệu quả. Điều này làm cho CNN trở thành công cụ ưu việt trong các ứng dụng yêu cầu độ nhạy cảm và độ chính xác cao, đặc biệt là trong lĩnh vực nhận dạng và phân loại hình ảnh.

<small>Hình 1: S</small><i><small>ơ đồ c</small></i><small>ác l</small><i><small>ớp của CNN</small></i>

CNN bao gồm những lớp sau:

- Lớp Đầu vào (Input Layer): chứa dữ liệu đầu vào, thường là hình ảnh hoặc dãy thời gian trong trường hợp các ứng dụng âm thanh.

- Lớp Convolutional (Convolutional Layer) hịu trách nhiệm thực hiện các phép : c tích chập để trích xuất đặc trưng từ dữ liệu đầu vào.

- Lớp Activation (Activation Layer): ử dụng hàm kích hoạt như ReLU để thêm s tính phi tuyến tính vào mơ hình, giúp mơ hình học được các đặc trưng phức tạp

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

- Lớp Pooling (Pooling Layer): Thực hiện các phép lọc để giảm kích thước khơng gian của dữ liệu, giảm chi phí tính tốn và giảm overfitting.

- Lớp Kết nối đầy đủ (Fully Connected Layer): Làm phẳng dữ liệu và kết nối mỗi node với tất cả các node trong lớp trước đó. Thường xuất hiện ở các phần cuối của mô hình

- Lớp Dropout: Ngăn chặn hiện tượng quá mức học (overfitting) bằng cách ngẫu nhiên "tắt" một số nơ ron trong quá trình huấn luyện.

-- Lớp Đầu ra (Output Layer): Đưa ra dự đoán cuối cùng, thường áp dụng hàm kích hoạt phù hợp (ví dụ: softmax cho bài toán phân loại).

Mạng Convolutional Neural Network (CNN) được xây dựng từ một loạt các lớp Convolution được xếp chồng lên nhau. Trong quá trình này, CNN sử dụng các hàm kích hoạt phi tuyến (như ReLU và tanh) để kích hoạt trọng số trong các nơ-ron. Sau khi lớp này được áp dụng, trọng số được tạo ra trong các nơ ron, tạo ra thông tin trừu tượng -hơn cho các lớp tiếp theo.

Đặc điểm quan trọng của mơ hình CNN là tính bất biến và tính kết hợp. Điều này đồng nghĩa với việc độ chính xác có thể bị ảnh hưởng nếu đối tượng giống nhau được chiếu theo nhiều phương diện khác nhau. Để đối phó với các biến động như chuyển dịch, co giãn và quay, pooling layer được sử dụng để làm cho mơ hình trở nên bất biến với những thay đổi này.

Pooling layer đóng vai trị quan trọng trong việc tạo ra tính bất biến đối với dịch chuyển, co giãn và quay. Trong khi đó, tính kết hợp cục bộ thể hiện sự biểu diễn từ mức độ thấp đến cao, thơng tin được trích xuất thông qua convolution từ các bộ lọc. Cơ chế convolution giúp liên kết các lớp với nhau, mỗi lớp kết quả được tạo ra từ lớp convolution trước đó, đảm bảo kết nối cục bộ hiệu quả nhất.

Trong quá trình huấn luyện, CNN tự động học các giá trị thông qua lớp filter, học cách nhận diện "mẫu" tương tự cách bộ não con người nhận diện vật thể trong thế giới

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<small>Hình 2: S</small><i><small>ơ đồ c</small></i><small>ác l</small><i><small>ớp của CNN</small></i><small> 2 </small>

Tuy CNN là thuật toán phổ biến trên tập dữ liệu ảnh nhưng ở bài báo cáo này sẽ sử dụng trên tập dữ liệu chữ để phân loại ý kiến người dung

b) RNN:

Recurrent Neural Network (RNN) là một loại mơ hình neural network được thiết kế để xử lý dữ liệu chuỗi và dữ liệu có tính tuần tự. Trái ngược với mơ hình truyền thống như Feedforward Neural Network, RNN có khả năng xử lý thơng tin từ quá khứ để ảnh hưởng đến quá trình dự đốn hiện tại.

Đặc điểm chính của RNN là khả năng duy trì một trạng thái ẩn (hidden state) trong mỗi bước thời gian, nơi nó lưu giữ thông tin về quá khứ. Mỗi bước thời gian của RNN nhận đầu vào mới cùng với trạng thái ẩn từ bước trước đó để tạo ra đầu ra và cập nhật trạng thái ẩn mới. Điều này giúp RNN xử lý dữ liệu tuần tự và tương tác giữa các phần tử trong chuỗi.

Mô hình RNN thích hợp cho nhiều nhiệm vụ, như dự đoán chuỗi thời gian, dịch máy, tạo văn bản, và nhiều ứng dụng trong xử lý ngôn ngữ tự nhiên. Tuy nhiên, RNN cũng đối mặt với vấn đề "vanishing gradient" khi xử lý chuỗi dài, khi thông tin từ q khứ khơng được duy trì hiệu quả. Để khắc phục vấn đề này, nhiều kiến trúc RNN cải tiến đã được phát triển, bao gồm Long Short-Term Memory (LSTM) và Gated Recurrent Unit (GRU).

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Mơ hình Recurrent Neural Network (RNN) được sử dụng trong nhiều ứng dụng khác nhau như xử lý ngôn ngữ tự nhiên, dự đoán chuỗi thời gian, và nhiều tác vụ máy học khác. RNN đã đem lại những đóng góp quan trọng trong các lĩnh vực như: - Dịch máy.

- Tạo văn bản tự động.

- Nhận diện thực thể trong văn bản. - Dự đoán chuỗi thời gian. - Học mơ hình ngơn ngữ. - Tự động hóa việc mơ tả hình ảnh. - Phân loại văn bản.

- Dự đoán từ tiếp theo trong chuỗi văn bản.

Ứng dụng của RNN không chỉ giới hạn trong những lĩnh vực này mà còn mở rộng ra nhiều ngữ cảnh và yêu cầu ứng dụng khác nhau tùy thuộc vào nhu cầu cụ thể của

<small>model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])</small>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<small>Hình 3</small><i><small>: Cấu tr</small></i><small>úc c</small><i><small>ủa m</small></i><small>ơ hình CNN </small> Training with 15 epoches:

<small>history_cnn=model.fit trainvalid_data(,y_train batch_size=,1000,epochs=15,validation_data= test_data y_test(,))</small>

<small>model_lstm.add Dense((,activation="sigmoid"))</small>

<small>model_lstm.compile(optimizer='adam',loss='binary_crossentropy',metrics=['acc'])</small>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<small>Hình 4</small><i><small>: Cấu tr</small></i><small>úc mơ hình RNN </small> Training with 6 epoches:

<small>history_lstm= model_lstm.fit(trainvalid_data, y_train batch_size=,500,epochs=6 validation_split=0.2)</small>

<b>3. Tối ưu hóa bằng Hyperparameter</b>:

Hyperparameter là các tham số không phải làm nhiệm vụ học từ dữ liệu mà cần được đặt trước khi q trình huấn luyện mơ hình bắt đầu. Những tham số này không được học từ dữ liệu mà phải được người phát triển thiết lập trước để ổn định cấu trúc và hành vi của mô hình.

Ví dụ, trong một mơ hình học máy, các trọng số là những giá trị được cập nhật thông qua q trình huấn luyện để làm cho mơ hình học được từ dữ liệu đầu vào. Ngược lại, hyperparameter không phụ thuộc vào dữ liệu mà do người phát triển quyết định trước. Các ví dụ về hyperparameter bao gồm learning rate (tốc độ học), số lượng epoch (số lần lặp lại qua dữ liệu), kích thước batch (số lượng mẫu dữ liệu được sử dụng trong mỗi lần cập nhật), và kiến trúc mạng (số lượng lớp, số lượng nơ ron trong mỗi lớp). -Tinh chỉnh hyperparameter là quá trình điều chỉnh giá trị của chúng để tối ưu hóa hiệu suất của mơ hình trên dữ liệu kiểm thử.

Dưới đây là cách để triển khai hyperparameter:

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

- CNN:

<small>#hyperparameter tuning for cnn:</small>

<small>!pip install keras-tuner import keras_tuner import keras </small>

<small>from keras_tuner.tuners import RandomSearch from tensorflow.keras.regularizers import l2 </small>

<small> model=Sequential()</small>

<small> model.add(Embedding input_dim=vocab_size output_dim=embedding_dim input_(,,length=max_length))</small>

<small> model.add(Conv1D filters=hp.Int(('filters', min_value=120, max_value=130,step=1),kernel_size=hp.Int('kernel_size', min_value=4 max_value=7</small>

<small>step=1),activation='relu',kernel_regularizer=l2 hp.Choice(('rate',values=[1e-4,1e-5,1e-6]))))</small>

<small> model.add(GlobalAveragePooling1D())</small>

<small> model.add(Dropout rate=hp.Float(('dropout', min_value=0.3, max_value=0.7,step=0.2)))</small>

<small> model.add(Dense(,activation='sigmoid'))</small>

<small> model.compile(optimizer=keras.optimizers.Adam hp.Choice(('learning_rate',values=[1e-3,1e-2,1e-1])),loss='binary_crossentropy',metrics=['acc']) return model </small>

<small>tuner = RandomSearch ( build_model, objective='val_acc',</small>

<small> max_trials=3 # Number of hyperparameter combinations to try directory='my_tuner3', # Directory to save the search results project_name='my_tuning3'</small>

<small>tuner.search trainvalid_data(, y_train epochs=,5 validation_data=(test_data,y_test))</small>

<small>Hình 5</small><i><small>: Kết quả sau khi H</small></i><small>yperparameter CNN best_hps = tuner.get_best_hyperparameters(num_trials=1)[0</small>

</div>

×