Phân bổ công suất truyền trong hệ thống massive mimo sử dụng deep learning

58 5 0
Phân bổ công suất truyền trong hệ thống massive mimo sử dụng deep learning

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ - TRUYỀN THÔNG PHÂN BỔ CÔNG SUẤT TRUYỀN TRONG HỆ THỐNG MASSIVE MIMO SỬ DỤNG DEEP LEARNING GVHD: TS PHẠM NGỌC SƠN SVTH: NGUYỄN VĂN MINH TRÍ MSSV: 16141088 SVTH: NGUYÊN VŨ ANH KIỆT MSSV: 16141050 SKL 0 Tp Hồ Chí Minh, tháng 08/2020 ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP PHÂN BỔ CÔNG SUẤT TRUYỀN TRONG HỆ THỐNG MASSIVE MIMO SỬ DỤNG DEEP LEARNING SVTH: NGUYỄN VĂN MINH TRÍ MSSV: 16141088 SVTH NGUYỄN VŨ ANH KIỆT MSSV: 16141050 Ngành: CNKT ĐIỆN TỬ -TRUYỀN THÔNG GVHD: TS PHẠM NGỌC SƠN Tp Hồ Chí Minh, tháng năm 2020 ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP PHÂN BỔ CÔNG SUẤT TRUYỀN TRONG HỆ THỐNG MASSIVE MIMO SỬ DỤNG DEEP LEARNING SVTH: NGUYỄN VĂN MINH TRÍ MSSV: 16141088 SVTH: NGUYỄN VŨ ANH KIỆT MSSV: 16141050 Ngành: CNKT ĐIỆN TỬ -TRUYỀN THƠNG GVHD: TS PHẠM NGỌC SƠN Tp Hồ Chí Minh, tháng năm 2020 DAI MOC SUPHAMKYTHUAT TRHCM R CONG HỒ XÄ H0I CHn NGHIA VIT NAM DÙ¢ lhp- Ty Hanh Phúc KHOA DAO TAO - CHÁT CHAT LUONG CAO ******* www.fhq.hcmute.edu.vn Tp Hơ Chií Minh, ngày tháng nm 2020 NHIEM Vr O ÁN Ho tên sinh viên: - Nguyén Vän Minh Tri MSSV: 16141088 16141050 -Ngun Vk Anh KiÇt Ngành: Cơng Nghe Ky Thu-t iÇn ti-Trun thơng Lóp: 16141CLVTA Giäng viên hng dân: TS.Ph¡m Ngoc Son Ngày nhan dè tài: 17/2/2020 Ngày nÙp dê tài: 12/8/2020 Tên dê tài: Phân bô cong suât truyên hÇ thóng Massive MIMO sit dung Deep learning Cỏc so liỗu, tọi liầu ban dõu: Kiộn co b£n vè kênh truyên vô tuyén, MIMO, Massive MIMO, Deep learning, mô phông Matlab, l-p trinh python, Noi dung thrc hiÇn Á tai: Mơ phơng dï liÇu Massive MIMO Thiêt kê mô hinh mang no-ron Viet chuong trinh o tao dù liỗu trờn Python Nhan xột v k¿t lu-n k¿t qua Viet báo cáo TRUÖNG NGÀNH GIANG VIÈN HNG D (TS'ham nleoe Srin CỘNG HỒ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Nguyễn Văn Minh Trí MSSV: 16141088 Nguyễn Vũ Anh Kiệt MSSV: 16141050 Ngành: Công nghệ kỹ thuật Điện tử-Truyền thông Tên đề tài: Phân bổ công suất truyền hệ thống Massive MIMO sử dụng Deep Learning Họ tên Giáo viên hướng dẫn: TS Phạm Ngọc Sơn NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Nội dung đề tài thực phân bổ công suất cho hệ thống Massive MIMO sử dụng Deep learning Khối lượng thực hiện: Đề tài thực phân bổ cơng suất cách giải tốn tối ưu sử dụng Matlab sau đó, nghiệm tối ưu sử dụng cho huấn luyện tạo mạng nơ-ron Mạng nơ-ron sử dụng để thực nhanh q trình phân bổ cơng suất cho người dùng Ưu điểm: - Ưu điểm đề tài mơ hình hóa mạng nơ-ron, huấn luyện mạng nơ-ron để từ muốn thực phân bổ công suất cho thiết bị người dùng mới, khơng cần phải tính tốn với công thức tối ưu phức tạp mà cần đưa tập liệu vào mạng Khuyết điểm: - Đề tài dựa nghiên cứu báo khoa học nên có trình bày khó hiểu Đề nghị cho bảo vệ hay không? Đề nghị cho bảo vệ Đánh giá loại: Giỏi Điểm: (Bằng chữ: chín) Tp Hồ Chí Minh, ngày 12 tháng 08 năm 2020 Giáo viên hướng dẫn TS Phạm Ngọc Sơn LỜI CẢM ƠN Trước hết, xin gửi lời cảm ơn chân thành đến Quý Thầy Cô môn Kỹ Thuật Điện Tử – Viễn Thông Thầy Cô Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh Đặc biệt chúng tơi xin bày tỏ lòng biết ơn sâu sắc đến thầy Ts Phạm Ngọc Sơn, người gợi ý đề tài, cung cấp cho nhiều kiến thức, tài liệu trực tiếp hướng dẫn chúng tơi cách tận tình từ lúc nhận đề tài hoàn thành đề tài Với vốn kiến thức hạn chế đề tài thời gian thực có hạn nên tác giả khơng thể tránh khỏi thiếu sót Chính vì vâ ̣y, tác giả mong nhận ý kiến đóng góp Thầy Cơ Và chúng tơi xin gửi lời cảm ơn đến bạn bè, người ln hỗ trợ, động viên chúng tơi q trình thực hoàn thành đề tài Xin chân thành cảm ơn iv TĨM TẮT Đề tài trình bày kiến thức tổng quan kênh truyền vô tuyến, yếu tố ảnh hưởng đến kênh truyền vô tuyến, kỹ thuật MIMO, kỹ thuật Massive MIMO, Deep Learning Nội dung trọng tâm đề tài tìm hiểu cách Deep Learning sử dụng mạng nơ-ron nhân tạo huấn luyện sở liệu lớn có sẵn vị trí thiết bị người dùng công suất truyền đường xuống người dùng tương ứng Để từ muốn thực phân bổ công suất cho thiết bị người dùng mới, khơng cần phải tính tốn với công thức tối ưu phức tạp mà cần đưa tập liệu vào mạng Ngoài ra, đề tài trình bày hệ thống Massive MIMO, sau mơ lại thơng tin hệ thống diện tích cell, số lượng anten, số lượng người dùng… từ sử dụng Matlab để tìm phân bổ cơng suất đánh giá hiệu suất thiết bị người dùng cell, trình bày cụ thể v MỤC LỤC TRANG PHỤ BÌA TRANG NHIỆM VỤ ĐỒ ÁN i PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv TÓM TẮT .v MỤC LỤC vi DANH MỤC CÁC TỪ VIẾT TẮT viii DANH MỤC CÁC HÌNH ix DANH MỤC CÁC BẢNG .x DANH MỤC CÔNG THỨC xi DANH MỤC CÁC KÝ HIỆU xii CHƯƠNG TỔNG QUAN .1 1.1 GIỚI THIỆU .1 1.2 MỤC TIÊU VÀ YÊU CẦU CỦA ĐỀ TÀI 1.3 GIỚI HẠN ĐỀ TÀI 1.4 PHƯƠNG PHÁP NGHIÊN CỨU .2 1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1.5.1 Đối tượng nghiên cứu 1.5.2 Phạm vi nghiên cứu 1.6 BỐ CỤC ĐỀ TÀI .3 CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 KÊNH TRUYỀN VÔ TUYẾN 2.1.1 Các tượng ảnh hưởng đến chất lượng kênh truyền vô tuyến 2.1.2 Các kỹ thuật tối ưu kênh truyền 2.2 KỸ THUẬT MIMO 2.2.1 Giới thiệu 2.2.2 Ưu nhược điểm 2.3 HỆ THỐNG MASSIVE MIMO .8 2.3.1 Giới thiệu 2.3.2 Hoạt động Massive MIMO vi 2.4 DEEP LEARNING 11 2.4.1 Hoạt động mạng nơ-ron nhân tạo 12 2.4.2 Các hàm tính tốn lớp mạng nơ-ron (hàm tuyến tính, sigmoid, tanh, relu,elu) 13 CHƯƠNG 17 THIẾT KẾ HỆ THỐNG 17 3.1 MƠ HÌNH MASSIVE MIMO 17 3.1.1 Ước lượng kênh 18 3.1.2 Hiệu suất phổ đường xuống 19 3.1.3 Thiết kế tiền mã hóa 20 3.2 PHÂN BỔ CÔNG SUẤT 21 3.3 PHÂN BỔ CÔNG SUẤT DỰA TRÊN DEEP LEARNING 22 3.4 THÔNG SỐ MÔ PHỎNG 24 3.5 LƯU ĐỒ GIẢI THUẬT 27 CHƯƠNG 28 KẾT QUẢ MÔ PHỎNG VÀ ĐÁNH GIÁ 28 4.1 KẾT QUẢ MÔ PHỎNG 28 4.2 KẾT QUẢ HUẤN LUYỆN BẰNG DEEP LEARNING 31 CHƯƠNG 34 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 34 5.1 KẾT LUẬN 34 5.2 HƯỚNG PHÁT TRIỂN 34 PHỤ LỤC 36 TÀI LIỆU THAM KHẢO 43 vii DANH MỤC CÁC TỪ VIẾT TẮT Chữ Viết Tắt Tiếng Anh Tiếng Việt CDF Cumulative distribution function Hàm phân phối tích lũy CSI Channel State Information Thơng tin kênh DL Downlink Đường xuống FDD Frequency-Division Duplex Song công phân chia theo tần số Multiple Input Multiple Output Multicell Minimum Mean-Squared Error Nhiều đầu vào nhiều đầu MMSE Minimum Mean Square Error Lỗi bình phương trung bình tối thiểu MR Maximum Ratio Tỉ lệ cao RX Receiver Máy thu SE Spectral Efficiency Hiệu suất phổ SINR Signal-to-interferenceplus-noise ratio Tỷ số tín hiệu nhiễu cộng tạp âm SNR Signal to Noise ratio Tỉ số tín hiệu nhiễu TDD Time Division Duplex Song công phân chia theo thời gian UL Uplink Đường lên MIMO M-MMSE viii Lỗi bình phương trung bình tối thiểu tất cell  MAX-MIN Kết mô max-min fairness so sánh hai phương pháp MR MMMSE Hình 4.3 Kết mô Max-min fairness Nhận xét: Ta nhận thấy với phương pháp max fairness, đường cong MR đạt hiệu suất cao so với M-MMSE Bảng thể mức hiệu suất MR có hàm CDF cao tức xác suất xảy lớn so với M-MMSE Điều có nghĩa với phương pháp MR, hiệu suất phân bổ người dùng đạt hiệu cao mức xác suất xảy lớn so sánh với M-MMSE Tương tự với thành phần fairness (độ tin cậy), ta thấy đường cong MR tốt so với M-MMSE Bảng Số liệu CDF Max-min fairness tương ứng với SE người dùng SE[bit/s/Hz] 1.4 CDF Max-min fairness M-MMSE MR 0.3902 0.5397 30 1.6 0.6329 0.7786 1.8 0.8218 0.8999 0.9093 0.98 4.2 KẾT QUẢ HUẤN LUYỆN BẰNG DEEP LEARNING Để đánh giá hiệu suất mạng nơ-ron dựa phân bổ công suất, đề tài minh họa chức phân phối tích lũy (CDF) cơng suất đường xuống thiết bị người dùng Đường liệu phân bổ công suất đường xuống Matlab, kết 330000 mẫu Khi tính tốn với cơng thức tối ưu phức tạp (được đem làm mẫu huấn luyện nơ-ron) Còn đường liệu mạng nơ-ron kết tính tốn nhanh Khi cần đem tập liệu 10000 mẫu vị trí vào mạng nơ-non mơ hình hóa huấn luyện Hình 4.4 cho thấy mạng nơ-ron phù hợp với phương pháp tối ưu với MMMSE 31 Hình 4.4 Kết mơ M-MMSE max prod sử dụng với mạng nơ-ron tính tốn với Matlab Nhận xét: Với phương pháp sử dụng tính tốn với Matlab mạng nơ-ron, ta nhận thấy khơng có khác biệt đáng kể Điều cho thấy mạng nơ-ron hoạt động hiệu với Max product SINR Hình 4.5 Ta thấy đường cong tiền mã hóa MR dùng mạng nơ-ron đạt hiệu cao so với sử dụng phương pháp tính tốn với Matlab Tuy nhiên mong muốn đề tài đường cong trùng Hình 4.5 Kết mơ MR max prod sử dụng với mạng mạng nơ-ron tính tốn với Matlab Nhận xét: Với mức cơng suất thấp ta nhận thấy khác biệt hai phương pháp sử dụng với mạng mạng nơ-ron tính tốn Matlab không đáng kể Nhưng với mức công suất cao (lớn 100W) phương pháp sử dụng tình tốn mạng 32 nơ-ron đạt mức cơng suất cao với xác suất xảy Do việc sử dụng phân bổ công suất với mạng nơ-ron cho hiệu gần tối ưu với mạng nơ-ron Kết trái ngược M-MMSE phức tạp mặt thuật tốn tính tốn MR Do đó, kết phân bổ cơng suất tối ưu theo ngun tắc khó học Nhóm đưa giải thích nguyên nhân với tiền mã hóa MR, cơng suất phân bổ sở đạt tín hiệu tốt Mặc khác, với MMMSE có tính đến tín hiệu gây nhiễu Vì mạng nơ-ron nhận đầu vào công suất tất người dùng mạng, nên tạo hầu hết thông tin M-MMSE sử dụng Kết luận: Với phương pháp max-product, Deep Learning dựa phân bổ cơng suất có độ tính tốn phức tạp đáng kể so với phương pháp truyền thống, đồng thời trì hiệu suất tối ưu với tiền mã hóa M-MMSE gần tối ưu với tiền mã hóa MR 33 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Trong chương này, đề tài tổng kết đánh giá kết đạt Đồng thời đưa hướng nghiên cứu tiếp tục thực để phát triển đề tài tương lai 5.1 KẾT LUẬN Trong đề tài nghiên cứu mạng nơ-ron nhân tạo để phân bổ công suất đường xuống mạng Massive MIMO với tiền mã hóa MR M-MMSE Trong cách phân bổ cơng suất nghiên cứu, cụ thể max-prod Với phương pháp ta cho thấy rằng, mạng nơ-ron huấn luyện cách học cách phân bổ công suất cho người dùng cell Điều đạt cách sử dụng thơng tin vị trí người dùng mạng, làm giảm đáng kể độ phức tạp thời gian xử lý q trình tối ưu hóa Kết cho thấy Deep Learning hoạt động tốt với M-MMSE với MR Điều có khả thực tế M-MMSE cho phép mạng nơ-ron khai thác hầu hết thơng tin có sẵn Hơn nữa, phương pháp MR khó huấn luyện Trong thực tế, ta cần sử dụng mạng nơ-ron với số lượng thông số tương đối cao để huấn luyện 5.2 HƯỚNG PHÁT TRIỂN Đề tài thực cho hệ thống Massive MIMO tương đối nhỏ với L = cell K = người dùng cell Những phát triển xa làm để mạng nơ-ron hoạt động theo hướng kích thước mạng tăng Hơn nữa, thực tế số lượng người dùng cell thay đổi liên tục Một cách đề xuất để xử lý việc có nhiều mạng nơ-ron trạm gốc cho tất cấu hình có người dùng Tuy nhiên, giải pháp khó mở rộng, 34 nhiên tích hợp Deep Learning cho cơng cụ phân bổ công suất theo thời gian thực Massive MIMO khả thi 35 PHỤ LỤC MÃ NGUỒN CHƯƠNG TRÌNH M-MMSE MAXPROD import numpy as np np.random.seed(1337) import scipy.io as sio import keras from keras.layers import Input, Dense, Lambda, Layer, Activation,Dropout,GaussianNoise from keras.models import Model, Sequential,load_model from keras import backend as K from keras import optimizers, metrics from keras.callbacks import EarlyStopping, ReduceLROnPlateau from keras.initializers import glorot_uniform from matplotlib import pyplot from keras.utils.vis_utils import plot_model from matplotlib import pyplot as plt def create_relu_advanced(max_value=1.): def relu_advanced(x): return K.relu(x, max_value=K.cast_to_floatx(max_value)) return relu_advanced def rmse(y_true, y_pred): return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1)) def rel_mse(x_true, x_pred): loss = K.square(K.abs((x_true - x_pred)/ x_true)) return K.mean(loss, axis=-1) cells = [1, 2, 3, 4] for cell_index in cells: 36 mat_contents = sio.loadmat('dataset_maxprod.mat') # Load input Input = mat_contents['Input_tr_normalized'] #output Output = mat_contents['Output_tr_MMMSE_maxprod_cell_' + str(cell_index)] Input_tr = np.transpose(Input) Output_tr = np.transpose(Output) p_max = mat_contents['Pmax'] # Load maximum power print("Size input vector", Input.shape) print("Size output vector", Output.shape) k = Input.shape# Size of input vector N_input = k[0] # Number of variable to optimize N_tr = k[1] # Number of training setups N_max_epoch = 50 # Maximum number of epochs N_batch_size = 256 # Batch size K_initializer = 'random_normal' B_initializer = 'random_uniform' K_regularizer = None model = Sequential() # Neural network configuration model.add(Dense(512, activation='elu', name = 'layer1', input_shape=(N_input,), kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(256, activation='elu', name = 'layer2', kernel_initializer =K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer3', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer4', kernel_initializer =K_initializer, bias_initializer=B_initializer)) #model.add(Dense(32, activation='elu', name='layer5', kernel_initializer=K_initializer, bias_initializer=B_initializer)) model.add(Dense(5, activation='elu', name = 'layer6', kernel_initializer = K_initializer, bias_initializer=B_initializer)) 37 model.add(Dense(6, activation='linear', name = 'layer7', trainable= False)) model.get_layer('layer7').set_weights((np.column_stack([np.identity(5), np.ones(5)]), np.zeros(6))) print(model.summary()) # Tối ưu hóa adam = optimizers.Adam(lr=0.01, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.1) early_stopping = EarlyStopping(monitor='val_loss', min_delta=0., patience=50, verbose=0, mode='auto') callback = [early_stopping] model.compile(loss=rel_mse, optimizer='adam', metrics=[rmse,'mse']) K.set_value(model.optimizer.lr, 0.001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.00001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) result1 = model.evaluate(Input_tr,Output_tr) print('loss',result1) plt.figure(figsize=(8,6)) plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.xlabel('epoch') plt.ylabel('value') plt.legend(['train', 'validation'], loc='upper left') plt.title('model train vs validation loss') 38 plt.show() model.save('NN_MMMSE_maxprod_cell_'+ str(cell_index) +'.h5') # Test mạng nơ-ron mẫu liệu mat_contents = sio.loadmat('testset_maxprod.mat') Input_test = mat_contents['Input_tr_normalized'] # Load data # Chạy neural network output_NN = model.predict(np.transpose(Input_test)) print(output_NN) # Lưu kết output file Matlab sio.savemat('pow_MMMSE_maxprod_cell_'+ str(cell_index) +'.mat', {'Output_test_' + str(cell_index): np.transpose(output_NN)}) MR MAXPROD import numpy as np np.random.seed(1337) import pdb import scipy.io as sio import keras from keras.layers import Activation,Dropout,GaussianNoise Input, Dense, Lambda, from keras.models import Model, Sequential,load_model from keras import backend as K from keras import optimizers, metrics from keras.callbacks import EarlyStopping, ReduceLROnPlateau from keras.initializers import glorot_uniform import matplotlib.pyplot as plt from keras.utils.vis_utils import plot_model def create_relu_advanced(max_value=1.): def relu_advanced(x): return K.relu(x, max_value=K.cast_to_floatx(max_value)) return relu_advanced 39 Layer, def rmse(y_true, y_pred): return K.sqrt(K.mean(K.square(y_pred - y_true), axis=-1)) def rel_mse(x_true, x_pred): loss = K.square(K.abs((x_true - x_pred)/ x_true)) return K.mean(loss, axis=-1) cells = [1, 2, 3, 4] # cell indexes for cell_index in cells: mat_contents = sio.loadmat('dataset_maxprod.mat') # Load input Input = mat_contents['Input_tr_dB_normalized'] # row numbers input set size columns number training set size #output Output = mat_contents['Output_tr_MR_maxprod_cell_' + str(cell_index)] Input_tr = np.transpose(Input) Output_tr = np.transpose(Output) p_max = mat_contents['Pmax'] # Load maximum power print("Size input vector", Input.shape) print("Size output vector", Output.shape) k = Input.shape # Size of input vector N_input = k[0] # Number of variable to optimize N_tr = k[1] # Number of training setups N_max_epoch = # Maximum number of epochs N_batch_size = 256 # Batch size K_initializer = 'glorot_uniform' B_initializer = 'zeros' K_regularizer = None model = Sequential() # Neural network configuration model.add(Dense(512, activation='elu', name = 'layer1', input_shape=(N_input,), kernel_initializer = K_initializer, bias_initializer=B_initializer)) 40 model.add(Dense(256, activation='elu', name = 'layer2', kernel_initializer =K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer3', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(128, activation='elu', name = 'layer4', kernel_initializer =K_initializer, bias_initializer=B_initializer)) #model.add(Dense(32, activation='elu', name='layer5', kernel_initializer=K_initializer, bias_initializer=B_initializer)) model.add(Dense(5, activation='elu', name = 'layer6', kernel_initializer = K_initializer, bias_initializer=B_initializer)) model.add(Dense(6, activation='linear', name = 'layer7', trainable= False)) model.get_layer('layer7').set_weights((np.column_stack([np.identity(5), np.ones(5)]), np.zeros(6))) print(model.summary()) adam = optimizers.Adam(lr=0.01, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.1) early_stopping = EarlyStopping(monitor='val_loss', min_delta=0., patience=50, verbose=0, mode='auto') # Early stopping callback = [early_stopping] model.compile(loss=rel_mse, optimizer='adam', metrics=[rmse]) K.set_value(model.optimizer.lr, 0.001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.0001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) K.set_value(model.optimizer.lr, 0.00001) history = model.fit(Input_tr, Output_tr, validation_split=0.03125, epochs=N_max_epoch, batch_size=10*N_batch_size, callbacks=callback) result1 = model.evaluate(Input_tr,Output_tr) 41 print('loss',result1) plt.figure(figsize=(8,6)) plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.xlabel('epoch') plt.ylabel('value') plt.legend(['train', 'validation'], loc='upper left') plt.title('model train vs validation loss') plt.show() model.save('NN_MR_maxprod_cell_'+ str(cell_index) +'vReduced128.h5') # Test mạng nơ-ron mẫu liệu mat_contents = sio.loadmat('testset_maxprod.mat') Input_test = mat_contents['Input_tr_dB_normalized'] # Load data output_NN = model.predict(np.transpose(Input_test)) # Run the neural network print(output_NN) # Lưu kết output file Matlab sio.savemat('pow_MR_maxprod_cell_'+ str(cell_index) +'vReduced128.mat', {'Output_test_' + str(cell_index): np.transpose(output_NN)}) 42 TÀI LIỆU THAM KHẢO [1] T L Marzetta, “Noncooperative cellular wireless with unlimited numbers of base station antennas”, vol 9, no 11, pp 3590–3600, 2010 [2] E G Larsson, F Tufvesson, O Edfors, and T L Marzetta, “Massive MIMO for next generation wireless systems”, IEEE Commun Magazine, vol 52, no 2, pp 186– 195, Feb 2014 [3] S Parkvall, E Dahlman, A Furuskar, and M Frenne, “NR: The new 5G ă radio access technology, IEEE Communications Standards Magazine, vol 1, no 4, pp 24–30, Dec 2017 [4] E Bjornson, J Hoydis, and L Sanguinetti, “Massive MIMO has unlimited capacity”, IEEE Transactions on Wireless Communications, vol 17, no 1, pp 574– 590, 2018 [5] I Goodfellow, Y Bengio, and A Courville, “Deep Learning”, MIT Press, 2016 [6] Huỳnh Quốc Anh, “Phân tích chất lượng hệ thống MIMO-ACO-OFDM quang vô tuyến”, Luận văn thạc sĩ trường ĐH Khoa Học Tự Nhiên, 2017 [7] Thomas L Marzetta, Erik G Larsson, Hong Yang, Hien Quoc Ngo, “Fundamentals of Massive MIMO”, Cambridge University Press, 2016 [8] Hien Quoc Ngo, “Fundamentals and System Design”, Linköping Studies in Science and Technology, Dissertations, 2015 [9] Simon Haykin, “Neural Network and Learning Machines” (Third Edition), 2008 [10] Emil Bjornson, Jakob Hoydis, and Luca Sanguinetti, “Massive MIMO ¨ networks: Spectral, energy, and hardware efficiency”, Foundations and Trends R in Signal Processing, vol 11, no 3-4, pp 154–655, 2017 43 S K L 0 ... thực phân bổ công suất cho hệ thống Massive MIMO sử dụng Deep learning Khối lượng thực hiện: Đề tài thực phân bổ công suất cách giải toán tối ưu sử dụng Matlab sau đó, nghiệm tối ưu sử dụng cho... Nguyễn Vũ Anh Kiệt MSSV: 16141050 Ngành: Công nghệ kỹ thuật Điện tử -Truyền thông Tên đề tài: Phân bổ công suất truyền hệ thống Massive MIMO sử dụng Deep Learning Họ tên Giáo viên hướng dẫn: TS... dựng hệ thống Massive MIMO Đề tài ứng dụng công thức tính tốn truyền thống nhằm phân bổ cơng suất truyền đường xuống từ trạm sở tới người dùng Kết phân bổ lưu trữ tạo thành mẫu Đề tài sử dụng

Ngày đăng: 08/08/2022, 23:32

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan