(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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(Đồ á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
ĐẠ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 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à xin gửi lời cảm ơn đến bạn bè, người hỗ trợ, động viên chúng tơi q trình thực hồ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 Ngồ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 DANH MỤC CÁC HÌNH Hình 2.1 Hiệu ứng đa đường Hình 2.2 Mơ hình hệ thống MIMO Hình 2.3 Đường lên đường xuống tín hiệu mơ hình Massive MIMO Hình 2.4 Cấu trúc ước lượng kênh truyền FDD [8] 10 Hình 2.5 Cấu trúc ước lượng kênh truyền TDD [8] 11 Hình 2.6 Một nơ-ron nhân tạo có lớp ngõ vào ngõ với lớp ẩn 12 Hình 2.7 Mơ tả hoạt động mạng nơ-ron 12 Hình 2.8 Hàm tuyến tính 13 Hình 2.9 Đồ thị hàm Sigmoid 14 Hình 2.10 Đồ thị hàm 15 Hình 2.11 Hàm Relu 15 Hình 2.12 Hàm elu 16 Hình 3.1 Mơ hình Massive MIMO [10] 17 Hình 3.2 Tín hiệu nhiễu anten khác cell tác động vào [10] 18 Hình 3.3 Minh họa việc truyền đường xuống cell j cell l [10] 19 Hình 4.1 Hình giao diện mơ 100 vị trí nhẫu nhiên Matlab 27 Hình 4.2 Kết mơ Max Product SINR 28 Hình 4.3 Kết mơ Max-min fairness 29 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 30 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 31 ix DANH MỤC CÁC BẢNG Bảng 1: Số liệu mô hệ thống Massive MIMO 24 Bảng 2: Số liệu mô mạng nơ-ron huấn luyện Max product SINR 25 Bảng 3: Số liệu CDF Max product SINR tương ứng với SE người dùng 28 Bảng 4: Số liệu CDF Max-min fairness tương ứng với SE người dùng 29 x DANH MỤC CÔNG THỨC Công thức 3.1: Đáp ứng kênh 17 Công thức 3.2: Mức tăng kênh trung bình anten 17 Công thức 3.3: Ước lượng kênh truyền 18 Công thức 3.4: Hiệu suất phổ đường xuống 19 Công thức 3.5: SINR 19 Công thức 3.6: Vectơ tiền mã hóa 20 Cơng thức 3.7: Vectơ kết hợp tính MR 20 Công thức 3.8: Vectơ kết hợp tính M-MMSE 21 Công thức 3.9: Hiệu suất phổ đường xuống sau kết hợp công thức 21 Cơng thức 3.10: Mức tăng kênh trung bình 20 Công thức 3.11: Mức tăng nhiễu trung bình 21 Cơng thức 3.12: Tính max-min fairness 21 Công thức 3.13: Tính max product SINR 21 Công thức 3.14: Công thức huấn luyện mạng nơ-ron Deep learning 23 xi DANH MỤC CÁC KÝ HIỆU Ký hiệu [.]T Mô tả Chuyển vị ma trận vectơ [.]H Chuyển vi liên hợp ma trận vectơ {.}i Phần tử thứ i vectơ nằm ngoặc {.}ij Phần tử nằm dòng i cột j ma trận nằm ngoặc |.| Trị tuyệt đối số thực ||.|| Chuẩn vectơ A Biểu thị cho ma trận A-1 Nghịch đảo ma trận A E{.} Toán tử kỳ vọng xii 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 toá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 toá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 toá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ý 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 ... 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. .. sẵn Deep Learning để thực phân bổ công suất max-prod đường xuống mạng Massive MIMO Trong đó, đề tài sử dụng mạng nơ-ron để tìm hiểu vị trí thiết bị người dùng cách phân bổ công suất tối ưu sau sử. .. cơng suất truyền, nhiễu Các cơng thức mơ mơ hình Massive MIMO Các mơ hình mạng nơ-ron, thư viện có sẵn Deep learning keras 1.6 BỐ CỤC ĐỀ TÀI Đề tài “PHÂN BỔ CÔNG SUẤT TRUYỀN TRONG HỆ THỐNG MASSIVE