Electronic device and roaming method

A neural network-based solution for electronic devices optimizes roaming by dynamically determining thresholds for Wi-Fi network transitions, addressing connectivity issues and enhancing seamless internet access.

WO2026019055A1PCT designated stage Publication Date: 2026-01-22SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/KR2025/007242
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-09-03
Filing Date
2025-05-28
Publication Date
2026-01-22

Smart Images

  • Figure KR2025007242_22012026_PF_FP_ABST
    Figure KR2025007242_22012026_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device according to an embodiment may comprise: at least one processor including a processing circuit; and a memory for storing instructions. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to generate a group of access points (APs) that have been found through a roaming scan. The instructions may be individually or collectively executed by the processor to cause the electronic device to train, on the basis of channel information of the APs included in the group, a neural network that differently determines a threshold for triggering the roaming scan for the APs included in the group. Various other embodiments may be possible.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic devices and roaming methods

[0001] Various embodiments of the present invention relate to electronic devices and roaming methods.

[0002] Electronic devices can provide features such as voice calls, video calls, video streaming, or internet access. Various features offered by electronic devices can be provided via mobile or wireless communication methods.

[0003] Wireless communication methods may include Wi-Fi (wireless fidelity). Wi-Fi is a wireless local area network (WLAN) technology that enables Internet access in the 2.4 GHz, 5 GHz, or 6 GHz frequency bands. Electronic devices can connect to a network (e.g., a Wi-Fi network) through an access point (AP). Because AP coverage is limited, electronic devices can roam from the currently connected AP to another AP as they move, ensuring uninterrupted wireless communication.

[0004] Roaming can refer to switching connections between Wi-Fi networks. Users can use Wi-Fi while moving. If signal strength fluctuates due to movement, preventing adequate internet quality, the device can switch from the currently connected AP to a different one.

[0005] The above information may be provided as background art to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above-described matters constitute prior art related to the present disclosure.

[0006] An electronic device according to one embodiment may include at least one processor including a processing circuit. The electronic device may include a memory storing instructions. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to create a group of access points (APs) discovered through a roaming scan. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to train a neural network to differently determine a threshold for triggering the roaming scan of APs included in the group based on channel information of the APs included in the group.

[0007] A method of operating an electronic device according to one embodiment may include an operation of creating a group of access points (APs) discovered through a roaming scan. The method may include an operation of training a neural network to differently determine a threshold for triggering a roaming scan of APs included in the group based on channel information of the APs included in the group.

[0008] An electronic device according to one embodiment may include at least one processor including a processing circuit. The electronic device may include a memory storing instructions. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to create a group of access points (APs) discovered through a roaming scan. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to differently determine a threshold for triggering the roaming scan of APs included in the group based on channel information of the APs included in the group. The instructions may be individually or collectively executed by the at least one processor to cause the electronic device to determine whether to trigger a roaming scan while connected to a first AP among the APs included in the group.

[0009] According to one embodiment, a computer-readable recording medium storing one or more computer programs may include instructions for performing the method on at least one processor.

[0010] FIG. 1 illustrates an example of a wireless LAN system according to various embodiments.

[0011] FIG. 2 illustrates another example of a wireless LAN system according to various embodiments.

[0012] FIG. 3a is a diagram for explaining a link setup operation according to various embodiments.

[0013] FIG. 3b is a diagram for explaining roaming operations according to various embodiments.

[0014] Figure 4 is a schematic block diagram of the STA and AP shown in Figure 3a.

[0015] FIG. 5A is a schematic block diagram of an electronic device according to one embodiment.

[0016] Figure 5b is a diagram for explaining a basic method of reinforcement learning according to one embodiment.

[0017] Fig. 6 shows an example of a flowchart of a learning method of a neural network according to one embodiment.

[0018] FIG. 7 is a diagram for explaining a learning scan trigger operation according to one embodiment.

[0019] FIG. 8A and FIG. 8B are examples of flowcharts of a learning mode and a test mode according to one embodiment.

[0020] FIG. 9a and FIG. 9b are diagrams for explaining an operation of creating a group of APs according to one embodiment.

[0021] Fig. 10 is an example of a flowchart of a reinforcement learning method of a neural network according to one embodiment.

[0022] FIGS. 11A to 11G are diagrams for explaining an operation of generating learning data for reinforcement learning of a neural network according to one embodiment.

[0023] FIG. 12 is a diagram schematically illustrating a method for generating learning data according to one embodiment.

[0024] FIG. 13 is a diagram for explaining by comparison the cases in which learning of a neural network according to one embodiment is ideally completed and abnormally completed.

[0025] FIG. 14A and FIG. 14B are diagrams illustrating a method for a trained neural network to determine a threshold value for triggering a roaming scan of APs, according to one embodiment.

[0026] FIG. 15 is a diagram illustrating a method for correcting false detections of a neural network that has completed learning, according to one embodiment.

[0027] Figure 16 is an example of a flowchart of a roaming method according to one embodiment.

[0028] FIG. 17 is a block diagram of an electronic device within a network environment according to one embodiment.

[0029] Hereinafter, embodiments will be described in detail with reference to the attached drawings. In the description with reference to the attached drawings, identical components are assigned the same reference numerals regardless of the drawing numbers, and redundant descriptions thereof will be omitted.

[0030]

[0031] FIG. 1 illustrates an example of a wireless LAN system according to various embodiments.

[0032] Referring to FIG. 1, according to various embodiments, a wireless LAN system (10) may represent an infrastructure mode in which an access point (AP) exists in the structure of a wireless LAN (WLAN) of the Institute of Electrical and Electronic Engineers (IEEE) 802.11. The wireless LAN system (10) may include one or more basic service sets (BSS) (e.g., BSS1, BSS2). A BSS (BSS1, BSS2) may refer to a set of APs and STAs (stations) (e.g., electronic devices (1701), (1702), or (1704) of FIG. 17) that can successfully synchronize and communicate with each other. BSS1 may include AP1 and STA1, and BSS2 may include AP2 and two or more STA2s and STA3s that can be coupled to one AP2.

[0033] According to various embodiments, a wireless LAN system (10) may include at least one STA (STA1 to STA3), an AP (AP1, AP2) providing a distribution service, and a distribution system (100) connecting a plurality of APs (AP1, AP2). The distribution system (100) may connect a plurality of BSSs (BSS1, BSS2) to implement an extended service set (ESS). The ESS may be used as a term indicating a network formed by connecting one or more APs (AP1, AP2) through the distribution system (100). The APs (AP1, AP2) included in one ESS may have the same SSID (service set identification).

[0034] According to various embodiments, STAs (STA1 to STA3) may be any functional medium including a medium access control (MAC) and a physical layer interface for a wireless medium that complies with the IEEE 802.11 standard. STAs (STA1 to STA3) may be used to mean both APs and non-AP STAs. STAs (STA1 to STA3) may also be referred to by various names, such as electronic devices, mobile terminals, wireless devices, wireless transmit / receive units (WTRUs), user equipment (UEs), mobile stations (MSs), mobile subscriber units, or simply users.

[0035]

[0036] FIG. 2 illustrates another example of a wireless LAN system according to various embodiments.

[0037] Referring to FIG. 2, according to various embodiments, the wireless LAN system (20) may represent an ad-hoc mode in which, unlike the wireless LAN system (10) of FIG. 1, communication is performed by establishing a network between STAs without an AP in the structure of a wireless LAN (WLAN) of IEEE 802.11. The wireless LAN system (20) may include a BSS operating in an ad-hoc mode, i.e., an independent basic service set (IBSS).

[0038] In various embodiments, the IBSS may not have a centralized management entity (CME) because it does not include an AP. In the IBSS, STAs (STA1 to STA2) may be managed in a distributed manner. In the IBSS, all STAs may be mobile STAs, and access to a distributed system (e.g., the distributed system (100) of FIG. 1) is not permitted, thereby forming a self-contained network (or integrated network).

[0039]

[0040] FIG. 3a is a diagram for explaining a link setup operation according to various embodiments.

[0041] Referring to FIG. 3A, according to various embodiments, a link setup operation may be performed between devices (e.g., STA (301), AP (401)) to communicate with each other. For link setup, network discovery, authentication, association establishment, and security configuration operations may be performed. The link setup operation may be a session initiation operation or a session setup operation. In addition, the operations of discovery, authentication, association, and security configuration of the link setup operation may be collectively referred to as an association operation.

[0042] According to various embodiments, the network discovery operation may include operations 310 and 320. In operation 310, the STA (301) (e.g., the electronic device (1601), the electronic device (1602), or the electronic device (1604) of FIG. 16) may transmit a probe request frame to search for an AP and wait for a response thereto. The STA (301) may perform a scanning operation to access a network to find a network to which it can join. The scanning operation may include an active scanning operation and a passive scanning operation. In operation 320, the AP (401) may transmit a probe response frame to the STA (301) that transmitted the probe request frame in response to the probe request frame.

[0043] According to various embodiments, after the STA (301) discovers a network, an authentication operation including operations 330 and 340 may be performed. In operation 330, the STA (301) may transmit an authentication request frame to the AP (401). In operation 340, the AP (401) may determine whether to allow authentication for the STA (301) based on information included in the authentication request frame. The AP (401) may provide the result of the authentication process to the STA (301) through an authentication response frame. The authentication frame used for the authentication request / response may correspond to a management frame.

[0044] According to various embodiments, the authentication frame may include information about an authentication algorithm number, an authentication transaction sequence number, a status code, a challenge text, a robust security network (RSN), or a finite cyclic group.

[0045] According to various embodiments, after STA (301) is successfully authenticated, an association operation including operations 350 and 360 may be performed. In operation 350, STA (301) may transmit an association request frame to AP (401). In operation 360, AP (401) may transmit an association response frame to STA (301) in response to the association request frame.

[0046] According to various embodiments, the association request frame and / or the association response frame may include information related to various capabilities. For example, the association request frame may include information related to various capabilities, a beacon listen interval, a service set identifier (SSID), supported rates, supported channels, RSN, mobility domain, supported operating classes, a traffic indication map broadcast request, and / or information about interworking service capabilities. For example, the association response frame may include information related to various capabilities, status codes, association ID (AID), supported rates, enhanced distributed channel access (EDCA) parameter sets, received channel power indicator (RCPI), received signal to noise indicator (RSNI), mobility domains, timeout interval (association comeback time), overlapping BSS scan parameters, TIM broadcast response, and / or QoS maps.

[0047] According to various embodiments, after the STA (301) is successfully associated with the network, a security setup operation including operations 370 and 380 may be performed. The security setup operation may be performed via a robust security network association (RSNA) request / response. For example, the security setup operation may include an operation of setting up a private key via a four-way handshaking via an extensible authentication protocol over LAN (EAPOL) frame. The security setup operation may also be performed according to a security method not defined in the IEEE 802.11 standard.

[0048] According to various embodiments, a security session is established between STA (301) and AP (401) according to a security setup operation, and STA (301) and AP (401) can perform secure data communication.

[0049]

[0050] FIG. 3b is a diagram for explaining roaming operations according to various embodiments.

[0051] Referring to FIG. 3B, according to one embodiment, an STA (301) may be connected to a network via an AP (e.g., AP (401), AP (402)). Since the coverage (e.g., service coverage) of an AP (e.g., AP (401)) is limited, the STA (301) may perform roaming (e.g., inter-AP roaming) from a currently connected AP (e.g., AP (401)) to another AP (e.g., AP (402)) as the STA (301) moves, thereby performing seamless wireless communication. The STA (301) may perform roaming when the distance from the AP (e.g., AP (401)) increases or the communication condition with the AP (e.g., AP (401)) deteriorates.

[0052] According to one embodiment, roaming may refer to a series of operations (or processes) of moving a connection to another AP without disconnecting the connection while communicating with an AP. The roaming operation may include a roaming trigger operation (e.g., an operation for determining whether roaming is necessary), a roaming scan operation, an AP selection operation (e.g., an operation for selecting a target AP to roam with), an authentication operation (e.g., operations 330 and 340 of FIG. 3A), an association operation (e.g., operations 350 and 360 of FIG. 3A), and a security setup operation (e.g., operations 370 and 380 of FIG. 3A). Hereinafter, the roaming operation performed by the STA (301) will be described in detail.

[0053] In operation 405, the STA (301) may determine whether roaming is triggered (e.g., whether roaming is necessary) while communicating with the currently connected AP (401). The STA (301) may monitor parameters (e.g., RSSI, Tx Error rate, and / or SNR (signal to noise rate)) for the AP (401) and determine that roaming is necessary when the value of the monitored parameter is below a specified roaming threshold (e.g., -75 dBm for RSSI).

[0054] In operation 410, the STA (301) may perform a roaming scan operation to search for APs (e.g., roaming APs) that can be connected for wireless communication connection in addition to the currently connected AP (401). The STA (301) may perform a full scan and / or a partial scan to search for APs in the 2.4 GHz band, the 5 GHz band, and / or the 6 GHz band. A full scan may be a scan of all available channels, and a partial scan may mean a scan of at least one channel rather than a scan of all available channels. The full scan and / or the partial scan may be performed for one or more designated bands (e.g., the 2.4 GHz band, the 5 GHz band, and / or the 6 GHz band). The STA (301) may perform a partial scan using a channel list (e.g., a roaming scan channel list) generated when connecting to the AP (401). Additionally, STA (301) can sequentially perform roaming scan operations for bands, and can also perform scan operations for two or more bands simultaneously.

[0055] In operation 415, the STA (301) may select a candidate AP satisfying a specified condition from one or more connectable APs discovered (or identified) through a roaming scan operation as a target AP to roam. The STA (301) may select a candidate AP satisfying a condition according to an AP selection criterion (e.g., a parameter such as RSSI, channel utilization, SNR, max link rate, estimated throughput, channel, or band) from one or more discovered APs (e.g., an AP that is 10 dBm or better than the currently connected AP (401) in terms of RSSI), and determine the best AP (e.g., the AP with the best RSSI) among the selected candidate APs as a target AP (402) to roam. For example, the AP selection criterion may include parameters such as RSSI, channel utilization, SNR, max link rate, or estimated throughput, and may include a Wi-Fi score calculated based on one or more of the above-described parameters. Additionally, the AP selection criteria may include selection and exclusion of designated bands and / or designated channels for AP selection. If there is no candidate AP, the STA (301) may perform operation 410 by adjusting one of the roaming scan period and the roaming scan type (e.g., full scan, partial scan).

[0056] In operation 420, after the STA (301) determines (e.g., discovers, selects) a target AP (402) to roam to, an authentication operation (or re-authentication operation) (e.g., operations 330 and 340 of FIG. 3A) may be performed between the STA (301) and the target AP (402).

[0057] In operation 425, after the STA (301) is successfully authenticated, an association operation (or re-association operation) (e.g., operations 350 and 360 of FIG. 3A) may be performed between the STA (301) and the target AP (402).

[0058] In operation 430, after the STA (301) is successfully associated with the network, a security setup operation (e.g., operation 370 and operation 380 of FIG. 3A) may be performed between the STA (301) and the target AP (402).

[0059] In operation 435, a security session is established between the STA (301) and the AP (402) according to a security setup operation, and the STA (301) and the AP (402) can perform secure data communication. The AP (401) and the AP (402) may be included in one ESS and have the same SSID (service set identification), but are not necessarily limited thereto.

[0060]

[0061] Figure 4 is a schematic block diagram of the STA and AP shown in Figure 3a.

[0062] Referring to FIG. 4, an electronic device (500) (e.g., STA (301) of FIG. 3A) may include a wireless communication circuit (440), a processor (450), and a memory (460). The wireless communication circuit (440) may be configured to transmit and receive wireless signals. The wireless communication circuit (440) may be a Wi-Fi chipset. The wireless communication circuit (440) may support multiple bands of 2.4 GHz, 5 GHz, and / or 6 GHz. The processor (450) may be operatively connected to the wireless communication circuit (440). The memory (460) may be electrically connected to the processor (450) and store one or more instructions executable by the processor (450). The electronic device (500) may correspond to the electronic device described in FIG. 17 (e.g., the electronic device (1701) of FIG. 17). Therefore, the description overlapping with the part to be described with reference to Fig. 17 is omitted. The operation performed by the electronic device (500) may include the operation performed by the wireless communication circuit (440) and the operation performed by the processor (450) through the wireless communication circuit (460).

[0063] According to one embodiment, the memory (460) may include one or more memories. The instructions stored in the memory (460) may be stored in a single memory. The instructions stored in the memory (460) may be divided and stored in multiple memories. The instructions stored in the memory (460) may be executed by the processor (450) to cause the electronic device (500) to perform and / or control the operations of the electronic device (500) described with reference to FIGS. 1 to 3B and the operations of the electronic device (500) described with reference to FIGS. 5A to 17.

[0064] According to one embodiment, the processor (450) may be implemented as a circuit (e.g., a processing circuit) such as a system on chip (SoC) or an integrated circuit (IC). The processor (450) may include one or more processors. For example, the processor (450) may include a combination of one or more processors such as a CPU, a GPU, an MPU, an AP, and a CP. Instructions stored in the memory (460) may be executed by one processor to cause the electronic device (500) to perform and / or control the operation of the electronic device (500) described with reference to FIGS. 1 to 3B and the operation of the electronic device (500) described with reference to FIGS. 5A to 17. Instructions stored in the memory (460) may be executed by a plurality of processors to cause the electronic device (500) to perform and / or control the operation of the electronic device (500) described with reference to FIGS. 1 to 3b and the operation of the electronic device (500) described with reference to FIGS. 5a to 17.

[0065] According to one embodiment, an electronic device (401) (e.g., AP (401) of FIG. 3A) may include a wireless communication circuit (470), a processor (480), and a memory (490). The wireless communication circuit (470) may be configured to transmit and receive wireless signals. The wireless communication circuit (470) may be a Wi-Fi chipset. The wireless communication circuit (470) may support multiple bands of 2.4 GHz, 5 GHz, and / or 6 GHz. The processor (480) may be operatively connected to the wireless communication circuit (470). The memory (490) may be electrically connected to the processor (480) and store one or more instructions executable by the processor (480). The AP (402) of FIG. 3B may also have substantially the same configuration as the electronic device (401).

[0066]

[0067] FIG. 5A is a schematic block diagram of an electronic device according to one embodiment.

[0068] Referring to FIG. 5A, according to one embodiment, the electronic device (500) may further include a database (DB) (530) in addition to the wireless communication circuit (440), processor (450), and memory (460) illustrated in FIG. 4. The data collection module (510), the group recognition module (515), the false positive control module (520), and the roaming model (525) may be executable by the processor (450) and may be configured as one or more of a program code including instructions that can be stored in a memory (e.g., the memory (460) of FIG. 4), an application, an algorithm, a routine, a set of instructions, or an artificial intelligence learning model. One or more of the data collection module (510), group recognition module (515), false detection control module (520), and roaming model (525) may be implemented as hardware and / or a combination of hardware and software. The memory (460) may store the DB (530), and according to an embodiment, a memory (not shown) other than the memory (460) included in the electronic device (500) may store the DB (530).

[0069] According to one embodiment, the electronic device (500) may be implemented as at least one of a smartphone, a tablet personal computer, a mobile phone, a speaker (e.g., an AI speaker), a video phone, an e-book reader, a desktop personal computer, a laptop personal computer, a netbook computer, a workstation, a server, a personal digital assistant (PDA), a portable multimedia player (PMP), an MP3 player, a mobile medical device, a camera, or a wearable device.

[0070] According to one embodiment, the roaming model (525) may be installed in the electronic device (500) and repeatedly perform training and / or inference on-device. Inference may refer to an operation of making a prediction on new data. Inference through the roaming model (525) may include an operation of determining whether a roaming scan is triggered based on channel information of an AP connected to the electronic device (500). For example, in a training mode, training of the roaming model (525) may be performed, and in a test mode, inference of the trained roaming model (525) may be performed. The training mode and the test mode will be described in detail with reference to FIGS. 8A and 8B .

[0071] According to one embodiment, the data collection module (510) may perform a handover query (HO query). The HO query may include an operation of collecting information (e.g., scan data) regarding a connection status of the electronic device (500) every certain period of time (e.g., 3 seconds). The scan data may include channel information of the AP (401) discovered through the roaming scan. The channel information of the AP (401) may include, but is not limited to, information such as a received signal strength indicator (RSSI) of the AP (401), an estimated throughput, the presence or absence of an enterprise network, a bandwidth (BW) of the channel, and / or a frequency of the channel.

[0072] According to one embodiment, the data collection module (510) may determine data collection in learning mode (e.g., determine when to trigger a learning roaming scan) through an HO query, and determine whether to trigger a roaming scan in test mode.

[0073] According to one embodiment, the group recognition module (515) can create a group of APs (e.g., APs (401) of FIG. 3A) discovered through a roaming scan. The group of APs may be associated with a physical space. For example, first APs may be discovered through a roaming scan performed in a first space (e.g., home). Second APs may be discovered through a roaming scan performed in a second space (e.g., office). The first APs and second APs cannot be discovered together through a roaming scan. In this case, the group recognition module (515) can manage the first APs and the second APs as different groups (e.g., a first group including the first APs and a second group including the second APs). The roaming model (525) can be trained for each group and perform a roaming scan for each group. That is, the roaming model (525) may include a model corresponding to the first group and a model corresponding to the second group. The model corresponding to the first group can determine the roaming threshold value (e.g., the threshold value for triggering a roaming scan) of the first APs included in the first group, and the model corresponding to the second group can determine the roaming threshold value (e.g., the threshold value for triggering a roaming scan) of the second APs included in the second group.

[0074] According to one embodiment, the APs to be grouped may be training target APs. The training target APs may be APs that have been connected to the electronic device (500) at least once in the past. For example, if the first to third APs are discovered through a roaming scan, and the third AP has never been connected to the electronic device (500), only the first and second APs may be grouped. The first and second APs may be training target APs, and the third AP may be a non-training target AP.

[0075] In one embodiment, the group recognition module (515) can recognize a group of APs discovered through a roaming scan. For example, the group recognition module (515) can identify which group a discovered AP belongs to.

[0076] According to one embodiment, the false positive control module (520) can control false positives of the roaming model (525). The false positive control module (520) can detect and correct false positives of the roaming model (525). For example, if a false positive occurs in the roaming model (525), the false positive control module (520) can detect it and switch the roaming model (525) back to learning mode. This will be described in detail with reference to FIG. 15.

[0077] According to one embodiment, the roaming model (525) may be trained to determine different thresholds for triggering a roaming scan for APs included in a group based on channel information of the APs included in the group. The roaming model (525) may be trained to determine whether to trigger a roaming scan based on the current connection strength (e.g., RSSI and / or throughput) of a specific AP. The roaming model (525) may be trained for different APs included in the same group. For example, the roaming model (525) may be trained to not trigger a roaming scan when the RSSI of the first AP is -70 dbm when connected to a first AP, and to trigger a roaming scan when the RSSI of the second AP is -70 dbm when connected to a second AP. That is, the inference result of the roaming model (525) may include a determination as to whether to trigger a roaming scan based on a specific connection strength of an AP connected to the electronic device (500).

[0078] According to one embodiment, the DB (530) may store learning data for the roaming model (525) (e.g., reinforcement learning) and / or channel information of APs discovered as a result of the roaming scan.

[0079]

[0080] Figure 5b is a diagram for explaining a basic method of reinforcement learning according to one embodiment.

[0081] Referring to FIG. 5b, according to one embodiment, a roaming model (e.g., roaming model (525) of FIG. 5a) may include a deep-Q-network agent (DQN agent) (540) and an environment (545).

[0082] In one embodiment, the DQN agent (540) and the environment (545) (e.g., implemented as a simulator) may correspond to the human brain and the external environment that influences the brain. The human brain can recognize various states from the external environment, receive rewards, and perform actions on them in the external environment. For example, the human brain recognizes the connection between an electronic device (e.g., the electronic device (500) of FIG. 5A) and an AP, and performs an action to determine whether to trigger a roaming scan based on the connection strength of the connected AP (e.g., the RSSI and / or throughput of the AP).

[0083] According to one embodiment, the DQN agent (540) and the environment (545) can train a neural network (e.g., Target Q-network (580) and / or Main Q-network (585)) by exchanging states (e.g., current state and / or next state), rewards, and actions. For example, the environment (545) can transmit the current state to the DQN agent (540). The DQN agent (540) can determine an action for the current state based on the current state. The DQN agent (540) can transmit the determined action to the environment (545). The environment (545) can receive the action for the current state and generate a next state (next_state) and a reward. The next state can be determined based on the type of action. The environment (545) can compare the next state with the current state to determine whether the action is appropriate for the current state. The environment (545) can generate a positive reward when the action is appropriate, and a negative reward when the action is inappropriate.

[0084] According to one embodiment, the replay memory (575) can store learning data (e.g., transition set (570)) generated from the environment (545). For example, the replay memory (575) can store learning data by dividing it into a current state, an action, a reward, a next state, etc. The data stored in the replay memory (575) can be used by the DQN agent (540) for learning of a network (e.g., Target Q-network (580) and / or Main Q-network (585)). The learning data can be a set of a current state of the electronic device (500) (e.g., a connection state of the electronic device (500) at the current time), an action related to a trigger of a roaming scan (e.g., a trigger of a roaming scan or a deactivation of a roaming scan), a next state of the electronic device (500) (e.g., a connection state of the electronic device (500) at the next time), and a reward related to a threshold value.

[0085] According to one embodiment, in a broad sense, the Target Q-network (580) and the Main Q-network (585) may correspond to the DQN agent (540). In a narrow sense, only the Main Q-network (585) corresponds to the DQN agent (540), and the Target Q-network (580) may be a network external to the DQN agent (540). The Main Q-network (585) is a network that learns the current policy, and the Target Q-network (580) may be a fixed network that is updated at regular intervals (e.g., by copying the weights w of the Main Q-network (585) at regular intervals) to ensure the stability of learning of the Main Q-network (585).

[0086] According to one embodiment, the DQN agent (540) can randomly sample training data (e.g., current state and action) from the replay memory (575) and apply it to the networks (e.g., Target Q-network (580) and Main Q-network (585)). The Target Q-network (580) can generate a target value of the Main Q-network (585) based on the current state and action stored in the replay memory (575). The Main Q-network (585) can calculate a loss function based on the target value and the Q value (e.g., generated by the Main Q-network (585) based on the current state and action). The Main Q-network (585) can update the weights of the Main Q-network (585) so that the loss function is minimized.

[0087] In one embodiment, the updated Main Q-network (595) can select an action from the current state according to an epsilon greedy selection policy.

[0088] In one embodiment, the DQN agent (540) can transmit the action generated by the updated Main Q-network (595) to the environment (545). The environment (545) can then generate the next state and reward according to the transmitted action and store it in the replay memory (575).

[0089] According to one embodiment, the above operations may be performed repeatedly until the learning of the Main Q-network (595) is completed.

[0090]

[0091] Figure 6 shows an example of a flowchart of a learning method of a neural network according to one embodiment.

[0092] Referring to FIG. 6, operations 610 and 630 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (610-630) may be changed, and at least two operations may be performed in parallel.

[0093] In operation 610, an electronic device (e.g., the electronic device (500) of FIG. 5A) may create a group of APs (e.g., the APs (401) of FIG. 3A) discovered through a roaming scan. For example, if there is no existing group of APs, the electronic device (500) may create a group of APs (401). If there is an existing group of APs, the electronic device (500) may add a new AP (401) to the existing group of APs. If there are multiple groups of existing APs, the electronic device (500) may also merge the existing groups. A method for creating each group will be described in detail with reference to FIGS. 9A and 9B.

[0094] In operation 630, the electronic device (500) may train a neural network (e.g., the roaming model (525) of FIG. 5A and / or the Main Q-network (585) of FIG. 5B) that differently determines thresholds for triggering a roaming scan of the APs (401) included in the group based on channel information of the APs (401) included in the group. The electronic device (500) may reinforcement learn the neural network for each group (e.g., the group of APs (401) generated in operation 610). At this time, in the reinforcement learning of the neural network, how to generate (or configure) learning data (e.g., the transition set (570) of FIG. 5B) may be important. This will be described in detail with reference to FIGS. 10A to 12D.

[0095]

[0096] FIG. 7 is a diagram for explaining a learning scan trigger operation according to one embodiment.

[0097] Referring to FIG. 7, operations 710 to 770 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (710 to 770) may be changed, and at least two operations may be performed in parallel.

[0098] According to one embodiment, a roaming model (e.g., the roaming model (525) of FIG. 5A) may be implemented on-device by being loaded onto an electronic device (e.g., the electronic device (500) of FIG. 5A). When implemented on-device, unlike when the roaming model (525) that has completed training is loaded onto the electronic device (500), it may be necessary to determine when training begins. Training of the roaming model (525) may begin by collecting training data through a training scan trigger. Hereinafter, a method for the electronic device (500) to determine whether to perform a training scan trigger for training the roaming model (525) will be described.

[0099] In operation 710, the electronic device (500) can determine the learning status of the roaming model (525). If the roaming model (525) has been learned, the electronic device (500) can perform operation 770. If the roaming model (525) has not been learned, the electronic device (500) can perform operation 730.

[0100] In operation 770, the electronic device (500) may perform inference of a roaming model (525). For example, the electronic device (500) may identify a group of currently connected APs. The electronic device (500) may select a roaming model (525) corresponding to the group of currently connected APs. The electronic device (500) may perform inference of the selected roaming model (525). The electronic device (500) may determine whether to trigger a roaming scan based on channel information of the currently connected AP.

[0101] In operation 730, the electronic device (500) may compare the Wi-Fi score of the currently connected AP (e.g., the RSSI or estimated throughput of the currently connected AP) with the Wi-Fi score of the previously connected AP (e.g., the RSSI or estimated throughput of the previously connected AP). The electronic device (500) may calculate the difference between the estimated throughput of the currently connected AP and the estimated throughput of the previously connected AP. The electronic device (500) may determine whether the difference (e.g., the difference between the estimated throughput of the currently connected AP and the estimated throughput of the previously connected AP) is greater than or equal to a certain level (e.g., θ). If the difference is greater than or equal to the certain level, the electronic device (500) may perform operation 750. If the difference is less than the certain level, the electronic device (500) may return to the beginning and perform operation 710 again.

[0102] According to one embodiment, the electronic device (500) may determine whether to perform a learning scan trigger based on the RSSI of the currently connected AP and the RSSI of the previously connected AP. For example, the electronic device (500) may calculate a data transmission rate associated with the RSSI of the connected AP based on the RSSI of the connected AP. The electronic device (500) may calculate the data transmission rate of the currently connected AP and the data transmission rate of the previously connected AP using the following mathematical equations 1 and 2, respectively. The electronic device (500) may determine whether the difference between the data transmission rate of the currently connected AP and the data transmission rate of the previously connected AP is greater than or equal to a predetermined level (e.g., θ). If the difference in the data transmission rate is greater than or equal to the predetermined level, the electronic device (500) may perform operation 750. If the difference in the data transmission rate is less than or equal to the predetermined level, the electronic device (500) may return to the beginning and perform operation 710 again.

[0103]

[0104]

[0105]

[0106]

[0107]

[0108] In mathematical equation 1, represents the data transmission speed between the AP connected to the electronic device (500), represents the signal to noise ratio of a tone (e.g., a sub-carrier of data transmitted and received between an electronic device (500) and an AP (e.g., transmitted and received in the form of an orthogonal frequency division multiplexing symbol (OFDM symbol)), : Indicates the maximum number of bits that can be included in one tone, represents the maximum number of spatial streams (e.g., used to transmit and receive data between the electronic device (500) and the AP) that both the AP and the electronic device (500) can support, : Indicates the number of tones, can represent the time required to transmit data (e.g., OFDM symbols).

[0109] In mathematical expression 2, may represent a power adjustment parameter (e.g., determined by the electronic device (500)) used when converting RSSI to SNR.

[0110] The values ​​shown in Mathematical Expressions 1 and 2 can be obtained based on a beacon frame (e.g., a probe response frame and / or a management frame) transmitted by an AP during a roaming scan.

[0111] In operation 750, the electronic device (500) may perform a learning scan trigger. If the learning scan trigger occurs, the electronic device (500) may perform a learning roaming scan (e.g., an HO query). The electronic device (500) may collect learning scan data through the HO query. The learning scan data may include channel information of the AP (401) discovered through the learning scan.

[0112]

[0113] FIG. 8A and FIG. 8B are examples of flowcharts of a learning mode and a test mode according to one embodiment.

[0114] Referring to FIG. 8A, operations 805 to 845 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (805 to 845) may be changed, and at least two operations may be performed in parallel.

[0115] According to one embodiment, in a learning mode, an electronic device (e.g., electronic device (500) of FIG. 5A) may perform learning scan data collection (e.g., operation 805), preprocessing of the collected data (e.g., operations 810 to 820), model training (e.g., operation 825), and false positive correction (e.g., operations 835 to 845). Each operation will be described in detail below.

[0116] In operation 805, the electronic device (500) may acquire scan data for learning. For example, the electronic device (500) may perform a roaming scan to acquire scan data. The scan data may include channel information of APs (e.g., AP (401) of FIG. 3A) discovered through the roaming scan. The triggering method of operation 805 has been described in detail through operations 710 to 750 of FIG. 7, and thus, any redundant description will be omitted herein.

[0117] According to one embodiment, the electronic device (500) can repeatedly perform a learning roaming scan n times (e.g., n is a natural number greater than or equal to 1) to repeatedly collect channel information of APs. The electronic device (500) can classify and store the channel information of APs according to the scan count for which the roaming scan was performed. For example, if the electronic device (500) performs a learning roaming scan three times, the channel information of APs can be collected a total of three times. The electronic device (500) can classify and store the channel information of APs corresponding to the first roaming scan, the channel information of APs corresponding to the second roaming scan, and the channel information of APs corresponding to the third roaming scan, respectively.

[0118] In operation 810, the electronic device (500) can recognize groups of discovered APs and divide (or classify) data (e.g., channel information of APs discovered through a roaming scan) according to the groups. The electronic device (500) can create groups of discovered APs. The electronic device (500) can classify channel information of APs by group. For example, the electronic device (500) can discover multiple APs through different roaming scans. The electronic device (500) can classify first APs discovered through a first roaming scan into a first group, second APs discovered through a second roaming scan into a second group, and third APs discovered through a third roaming scan into a third group. The electronic device (500) can divide the channel information of the first APs obtained through the first roaming scan, the channel information of the second APs obtained through the second roaming scan, and the channel information of the third APs obtained through the third roaming scan.

[0119] In operation 815, the electronic device (500) may generate (or augment) learning data.

[0120] According to one embodiment, the electronic device (500) may check a learning start condition. For example, the electronic device (500) may determine whether the scan count exceeds a threshold value (e.g., a value set by a user or by the electronic device (500). The threshold value may be a value set to secure sufficient learning data. If the scan count exceeds the threshold value, the electronic device (500) may determine that sufficient learning data has been secured and may generate a scan map. If the scan count does not exceed the threshold value, the electronic device (500) may determine that insufficient learning data has been secured and may secure learning scan data through operation 805.

[0121] According to one embodiment, the electronic device (500) may generate a scan map based on channel information of APs. The electronic device (500) may generate a scan map for each group. For example, the electronic device (500) may generate a scan map for a first group based on channel information of first APs included in the first group. The electronic device (500) may generate a scan map for a second group based on channel information of second APs included in the second group. The scan map may be a table (e.g., a table in which rows are BSSIDs of APs, and columns are scan counts and connection strengths) that organizes scan counts and / or connection strengths (e.g., RSSI and / or throughput) of APs included in a group according to identification information (e.g., BSSID and / or SSID) of the APs.

[0122] According to one embodiment, the electronic device (500) can preprocess the scan map to augment the learning data. Based on the scan map of each group, the electronic device (500) can generate learning data for training a roaming model (e.g., the roaming model (525) of FIG. 5A) for each group. This will be described in detail with reference to FIGS. 11A to 11G .

[0123] In operation 820, the electronic device (500) may augment learning data according to learning options (e.g., set by user selection). The electronic device (500) may augment learning data by performing selective masking on the scan map according to the learning options. This will be described in detail with reference to FIG. 11g.

[0124] In operation 825, the electronic device (500) may train a roaming model (525). The roaming model (525) may be trained to determine a threshold for triggering a roaming scan of APs for each group based on group-specific learning data (e.g., the current state, action, next state, and reward of the electronic device (500). The electronic device (500) may perform reinforcement learning on the roaming model (525) based on the learning data generated in operation 815. The basic method of reinforcement learning has been described in detail with reference to FIG. 5B, and thus, a detailed description thereof will be omitted herein.

[0125] In steps 835 to 845, the electronic device (500) can correct false positives of the learned roaming model (525).

[0126] In operation 835, the electronic device (500) can check the training score of the trained roaming model (525). The training score can be a criterion for determining whether training is completed for the roaming model (525) in training mode. The training score can be determined based on the ratio of actions that received positive rewards among the actions performed during the training process of the roaming model (525). For example, the training score can be calculated by dividing the number of times the positive rewards were received by the number of times the action was performed. If the training score satisfies a certain level or higher, the electronic device (500) can perform operation 840. If the training score does not satisfies the certain level or higher, the electronic device (500) can perform training of the roaming model (525) through operation 825.

[0127] In operation 840, the electronic device (500) may set roaming thresholds of APs (e.g., thresholds for triggering a roaming scan). The electronic device (500) may identify whether an AP is a normal learning AP or an abnormal learning AP. A normal learning AP may be an AP whose roaming threshold is normally set through training of the roaming model (525). An abnormal learning AP may be an AP whose roaming threshold is set, but incorrectly, through training of the roaming model (525). Abnormal learning APs may be generated based on various problems that occur during the training process (e.g., including distortion of training data). For example, distortion of training data may be affected by the method of collecting training data. The method of collecting training data may show good performance for some APs and poor performance for other APs based on how a user moves in a space. The electronic device (500) may perform debugging on abnormal learning APs.

[0128] According to one embodiment, the electronic device (500) can extract the roaming threshold values ​​of normal learning APs among the learning target APs. The electronic device (500) can identify abnormal learning APs among the learning target APs and set the roaming threshold values ​​of the abnormal learning APs based on the roaming threshold values ​​of the normal learning APs. For example, the roaming threshold values ​​of the abnormal learning APs can be set to the average of the roaming threshold values ​​of the normal learning APs. A method for extracting the roaming threshold values ​​of normal learning APs will be described in detail with reference to FIG. 14a. In addition, a method for setting the roaming threshold values ​​of abnormal learning APs will be described in detail with reference to FIG. 14b.

[0129] In operation 845, the electronic device (500) may switch to a test mode if a roaming threshold value has been set for all APs.

[0130] Referring to FIG. 8B, operations 850 to 880 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (850 to 880) may be changed, and at least two operations may be performed in parallel.

[0131] In operation 850, the electronic device (500) can identify a group of APs. For example, the electronic device (500) may be connected to an AP. The electronic device (500) can identify a group that includes the connected AP.

[0132] In operation 855, the electronic device (500) can check whether the connected AP is a normal learning AP. The electronic device (500) can determine whether the connected AP is a learning target AP (e.g., an AP for which a roaming threshold is set by a roaming model (525) learned through the learning mode described in FIG. 8A) or a non-learning target AP (e.g., an AP for which a roaming threshold is not set by the learned roaming model (525). If the connected AP is a learning target AP, the electronic device (500) can identify whether the connected AP is a normal learning AP or an abnormal learning AP among the learning target APs. If the connected AP is a normal learning AP, the electronic device (500) can perform operation 860. If the connected AP is an abnormal learning AP or a non-learning target AP, the electronic device (500) can perform operation 865.

[0133] In operation 860, the electronic device (500) may perform inference of the roaming model (525). For example, the electronic device (500) may determine whether to trigger a roaming scan based on channel information of the connected AP. The electronic device (500) may determine not to trigger a roaming scan if the connection strength of the AP is greater than the roaming threshold of the AP (e.g., set through the roaming model (525)). The electronic device (500) may determine to trigger a roaming scan if the connection strength of the AP is less than the roaming threshold of the AP.

[0134] In operation 870, the electronic device (500) may trigger a roaming scan based on the inference result of the roaming model (525). For example, if it is determined in operation 860 that a roaming scan is to be triggered, the electronic device (500) may trigger a roaming scan. Through the roaming scan, the electronic device (500) may obtain channel information of other APs other than the currently connected AP.

[0135] In operation 865, the electronic device (500) may trigger a roaming scan based on a roaming threshold (e.g., a roaming threshold of an abnormal learning AP). When the electronic device (500) is connected to an abnormal learning AP, the electronic device (500) may trigger a roaming scan based on the roaming threshold of the abnormal learning AP. The roaming threshold of the abnormal learning AP may be set to an average of the roaming thresholds of the normal learning APs (e.g., determined based on the inference result of the roaming model (525)). For example, the electronic device (500) may not trigger a roaming scan if the connection strength between the electronic device (500) and the abnormal learning AP is greater than the roaming threshold of the abnormal learning AP. The electronic device (500) may trigger a roaming scan if the connection strength between the electronic device (500) and the abnormal learning AP is less than the roaming threshold of the abnormal learning AP.

[0136] In operation 875, the electronic device (500) may check a test score. The test score may be a criterion for determining whether to perform retraining on the roaming model (525) in test mode. The test score may be determined based on whether the roaming scan performed in operation 870 and / or operation 865 is suitable. For example, if the electronic device (500) performs a roaming scan, but there is no AP more suitable than the currently connected AP among the APs discovered through the roaming scan, the test score may decrease.

[0137] In operation 880, the electronic device (500) may switch to the learning mode of FIG. 8a if the test score does not satisfy a certain level.

[0138]

[0139] FIG. 9a and FIG. 9b are diagrams for explaining an operation of creating a group of APs according to one embodiment.

[0140] Referring to FIGS. 9A and 9B , operations 910 to 980 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (910 to 980) may be changed, and at least two operations may be performed in parallel.

[0141] In operation 910, an electronic device (e.g., the electronic device (500) of FIG. 5A) may collect scan data (e.g., training scan data). For example, the electronic device (500) may collect scan data through a roaming scan (e.g., training roaming scan). The scan data may include channel information of APs discovered through the roaming scan. A method for determining whether a roaming scan is triggered has been described in detail with reference to FIG. 7, and thus, a redundant description thereof will be omitted.

[0142] In operation 920, the electronic device (500) can determine whether there is one or more APs to be learned among the discovered APs. The APs to be learned may be APs that have been connected to the electronic device (500) at least once in the past. If there is no one or more APs to be learned, the electronic device (500) can return to the beginning and perform operation 910 again. If there is one or more APs to be learned, the electronic device (500) can perform operation 930.

[0143] In operation 930, the electronic device (500) can determine whether a group of APs to be learned exists. If the group of APs to be learned does not exist, the electronic device (500) can perform operation 940. If the group of APs to be learned exists, the electronic device (500) can perform operation 950.

[0144] In operation 940, the electronic device (500) may create a group of APs to be learned. For example, the electronic device (500) may create a first group of first APs discovered through the first roaming scan (e.g., APs connected to the electronic device (500) at least once in the past). For example, as illustrated in FIG. 9B , the electronic device (500) may discover A (e.g., the first AP) in scan result 1. If there is no group including A, the electronic device (500) may create group 1.

[0145] According to one embodiment, when multiple learning target APs are simultaneously discovered in scan data, the multiple learning target APs can be classified into the same group.

[0146] According to one embodiment, the name of the first group may be generated in various ways. For example, the electronic device (500) may determine the group name as a random number value based on the generation order of the groups.

[0147] In operation 950, the electronic device (500) can determine whether there are multiple groups of APs to be learned. If there are not multiple groups of APs to be learned, the electronic device (500) can perform operation 960. If there are multiple groups of APs to be learned, the electronic device (500) can perform operation 980.

[0148] In operation 960, the electronic device (500) can determine whether there is a learning target AP without a group among the APs discovered through the roaming scan of operation 910. If there is a learning target AP without a group among the APs discovered through the roaming scan, the electronic device (500) can perform operation 970. If there is no learning target AP without a group among the APs discovered through the roaming scan, the electronic device (500) can return to the beginning and perform operation 910 again.

[0149] In operation 970, the electronic device (500) may add a learning target AP without a group among the APs discovered through the roaming scan to an existing group. For example, as illustrated in FIG. 9B, the electronic device (500) may obtain scan result 1 through the first roaming scan performed at a previous point in time. The electronic device (500) may create group 1 (e.g., including A) through scan result 1. The electronic device (500) may obtain scan result 2 through the second roaming scan. The electronic device (500) may not discover B in the first roaming scan, but may discover B together with A through the second roaming scan. The electronic device (500) may add B to an existing group (e.g., the first group).

[0150] In operation 980, the electronic device (500) may merge groups of APs to be learned. For example, there may be a first group of first APs discovered through a first roaming scan, and a second group of second APs discovered through a second roaming scan. The electronic device (500) may discover third APs through a third roaming scan. At this time, if one or more of the first APs and one or more of the second APs are included in the third APs, the electronic device (500) may create a third group by merging the first group and the second group.

[0151] According to one embodiment, as illustrated in FIG. 9b, a group 1 (e.g., including A and B) generated from scan result 2 and a group 2 (e.g., including E) generated from scan result 3 may already exist. The electronic device (500) may simultaneously search for A, B, D, and E through the fourth roaming scan. The electronic device (500) may merge group 2 into group 1 to classify A, B, D, and E into one group.

[0152] According to one embodiment, the electronic device (500) can separately manage scan data and roaming models for each group. For example, it is assumed that the first group and the second group are different groups that cannot be merged (e.g., APs included in each group cannot be discovered simultaneously through a single roaming scan). The electronic device (500) can manage scan data of the first group and the second group (e.g., channel information of APs included in each group) and roaming models corresponding to each group (e.g., a first roaming model learned to determine roaming threshold values ​​of APs included in the first group and a second roaming model learned to determine roaming threshold values ​​of APs included in the second group).

[0153]

[0154] Fig. 10 is an example of a flowchart of a reinforcement learning method of a neural network according to one embodiment.

[0155] Referring to FIG. 10, operations 1005 to 1020 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (1005 to 1020) may be changed, and at least two operations may be performed in parallel.

[0156] In operation 1005, an electronic device (e.g., the electronic device (500) of FIG. 5A) may obtain scan results (e.g., scan data). The electronic device (500) may obtain scan data through a roaming scan. A method for determining whether a roaming scan is triggered has been described in detail with reference to FIG. 7, and thus, a redundant description thereof will be omitted.

[0157] In operation 1010, the electronic device (500) can augment learning data. The electronic device (500) can generate (and / or augment) learning data based on scan data. A schematic method for generating (and / or augmenting) learning data has been described in operation 815 of FIG. 8A, but a specific method thereof will be described in detail with reference to FIGS. 11A to 12D. The learning data can be stored in a replay memory (e.g., the replay memory (575) of FIG. 5B).

[0158] In operation 1015, the electronic device (500) may extract the replay memory (575). For example, the electronic device (500) may randomly sample and extract training data stored in the replay memory (575). The electronic device (500) may use the sampled training data to train a roaming model (e.g., the roaming model (525) of FIG. 5A).

[0159] In operation 1020, the electronic device (500) can train the roaming model (525). For example, the electronic device (500) can perform reinforcement learning of the roaming model (525) based on training data randomly sampled from the replay memory (575). The electronic device (500) can apply the training data to a network included in the roaming model (525) (e.g., the Target Q-network (580) and the Main Q-network (585) of FIG. 5b) to perform network training. The basic reinforcement learning method of the network has been described in detail with reference to FIG. 5b, and thus, a redundant description thereof will be omitted.

[0160]

[0161] FIGS. 11a to 11g are diagrams for explaining an operation of generating learning data for reinforcement learning of a neural network according to one embodiment.

[0162] Referring to FIG. 11A, operations 1025 to 1055 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (1025 to 1055) may be changed, and at least two operations may be performed in parallel.

[0163] In operation 1025, an electronic device (e.g., the electronic device (500) of FIG. 5A) selects a scan count to be learned from a scan map and randomly selects it as a learning target AP. Hereinafter, a method for generating a scan map will be described with reference to FIGS. 11B to 11D , and a method for selecting a learning target AP will be described with reference to FIG. 11E .

[0164] According to one embodiment, referring to FIG. 11B, the electronic device (500) may obtain scan data (1105) through a roaming scan. The electronic device (500) may filter the scan data (1105) to extract data on APs to be learned from among the APs included in the scan data (1105). The electronic device (500) may store the data on the APs to be learned in the form of a scan result (1110). The electronic device (500) may identify a group of currently connected APs (e.g., performed by the group recognition module (515) of FIG. 5A) and store the scan data result (1105) of the corresponding group in the form of a scan result (1110). The scan result (1110) may be a table in which the RSSI, identification information (e.g., BSSID and SSID), throughput, and / or scan count of the AP obtained through the roaming scan are recorded. The electronic device (500) can preprocess (e.g., parse and / or transform) the scan result (1110) to generate a scan map (1120).

[0165] According to one embodiment, referring to FIG. 11c, the scan result (1110) may be data about APs to be learned from among scan data (1105) organized according to identification information of the APs, scan count, and connection strength (e.g., RSSI and / or throughput).

[0166] According to one embodiment, referring to FIG. 11d, the scan map (1120) may be a table that is a preprocessed scan result (1110), in which the rows of the table are identification information (e.g., BSSID and / or SSID) of the learning target APs (1130), the columns of the table are scan counts, and each element of the table displays the connection strength (e.g., RSSI and / or throughput).

[0167] According to one embodiment, referring to FIG. 11E, the electronic device (500) may select a scan count to be learned from the scan map (1120). The electronic device (500) may select the scan count and randomly select one of the learning target APs (1130). The electronic device (500) may define the current state assuming a state of being connected to the randomly selected AP. For example, the electronic device (500) may select scan count 1 and select AP (1150) from the learning target APs (1130). The electronic device (500) may define the state of being connected to AP (1150) as the current state. This will be described in detail in operation 1030 below.

[0168] In operation 1030, the electronic device (500) can define a current state by masking the values ​​of other APs except for a randomly selected AP. The electronic device (500) can define a state in which the electronic device (500) is connected to the AP selected in operation 1025 as a current state. When the electronic device (500) is connected to the selected AP, the electronic device (500) can mask the channel information of other APs except for the selected AP. The reason for masking the channel information of other APs is that if the electronic device (500) is connected to the selected AP, the channel information of other APs cannot be known unless a roaming scan is performed.

[0169] According to one embodiment, referring to FIG. 11e, the electronic device (500) can obtain a full state (e.g., a state in which all channel information (e.g., connection strength) for learning target APs (1130) can be confirmed) (1140) at scan count 1 through the scan map (1120). The electronic device (500) can select the scan count as 1 and select the AP (1150) among the learning target APs (1130). The electronic device (500) can define a state connected to the AP (1150) as a current state (1160). In the full state (1140), the electronic device (500) can define the current state (1160) by masking information about other APs other than the AP (1150) (e.g., a state in which an initial value (e.g., preset value) is assigned to channel information for other APs).

[0170] In operation 1035, the electronic device (500) may select an action based on an ε-greedy selection policy in the current state. For example, a neural network (e.g., Main Q-network (595) of FIG. 5B) may select an action to be performed in the current state (e.g., connected to an AP (1150)) based on the ε-greedy selection policy. The action may include triggering a roaming scan in the current state and maintaining the current state without triggering a roaming scan. The Main Q-network (595) may randomly select an action based on a certain probability ε (e.g., 0.1 or 0.01). The Main Q-network (595) can acquire new experiences (e.g., information on whether it is appropriate to trigger a roaming scan for various connection strengths of the AP (1150)) by randomly selecting an action according to a probability ε, thereby attempting an action that has not yet been sufficiently explored (e.g., attempting to trigger a roaming scan for various connection strengths of the AP (1150) connected to the electronic device (500). The Main Q-network (595) can select an action that is predicted to give the highest reward based on the experience to date (e.g., the action with the largest Q-value in the current state) according to a probability (e.g., 1-ε).

[0171] In operation 1040, the electronic device (500) may calculate the next state based on the action. If the action does not trigger a roaming scan in the current state, the electronic device (500) may determine the current state as the next state. If the action triggers a roaming scan in the current state, the electronic device (500) may determine the state of being connected to the second AP roamed to based on the roaming scan as the next state.

[0172] According to one embodiment, referring to FIG. 11f, the overall state (1140) may be a state in which all channel information of learning target APs (1130) in scan count 1 can be confirmed. The current state (1160) may be a state in which the electronic device (500) is connected to a selected AP (e.g., an AP randomly selected in operation 1025) (e.g., an AP having a BSSID of bc:9f:e4:22:61:70) (1150) among the learning target APs (1130), and other learning target APs other than the AP (1150) may be masked. The reason why other learning target APs other than the AP (1150) are masked in the current state (1160) is because, when the electronic device (500) is connected to the AP (1150), the channel information of other learning target APs other than the AP (1150) cannot be known. That is, it can be assumed that the entire state (1140) cannot be known unless the electronic device (500) performs a roaming scan. The electronic device (500) can define the current state (1160) as the next state if the action does not trigger a roaming scan. The method for determining the next state when the action triggers a roaming scan will be described in detail below.

[0173] According to one embodiment, when an action triggers a roaming scan, the electronic device (500) can obtain a full state (1140). The electronic device (500) can search for a better AP (e.g., an AP with a stronger connection strength than the AP (1150)) than the AP (1150) connected to the current state (1160) through the full state (1140). If there is a better AP (e.g., an AP with a BSSID of b8:3a:5a:b5:8f:12) than the AP (1150) (e.g., an AP with a stronger connection strength among multiple APs better than the AP (1150), the electronic device (500) can switch the connection to the better AP (e.g., an AP with a BSSID of b8:3a:5a:b5:8f:12). The electronic device (500) can define the following state (1170) as a state of being connected to an AP (e.g., an AP with BSSID b8:3a:5a:b5:8f:12).

[0174] In operation 1045, the electronic device (500) may mask non-interest areas when calculating the next state according to a training option. The training option may be set by the user or by the electronic device (500). The training option may be set to prioritize training target APs (1130) so as to roam to the AP with the highest priority. The training option may be set to prevent roaming to other APs when connected to the AP with the highest priority even if the connection strength of the AP with the highest priority is low, or to roam to the AP with the highest priority even if the connection strength of the other AP is greater than the connection strength of the AP with the highest priority when connected to another AP. For example, a learning option could be set to prevent roaming to other APs (e.g., a public AP provided in an office) when connecting to a specific AP (e.g., a private AP) within a group (e.g., a group of APs discovered through a roaming scan performed in a space (e.g., an office)).

[0175] According to one embodiment, referring to FIG. 11g, the learning option may be set to give priority to an AP (e.g., an AP having a BSSID of bc:9f:e4:23:d8:b2, hereinafter referred to as a first AP) so as not to roam to other APs (e.g., other learning target APs included in a group (e.g., a group of learning target APs shown in the overall state (1175))) other than the AP (e.g., an AP having a BSSID of bc:9f:e4:23:d8:b2). The electronic device (500) may define the next state (1190) based on the learning option. For example, the current state (1180) may be defined as a state connected to an AP (e.g., an AP having a BSSID of bc:3a:5a:b5:39:72, hereinafter referred to as a second AP). If the action triggers a roaming scan, and the learning option is not set, the electronic device (500) may define a state in which it is connected to an AP with the strongest connection strength among all states (1175) (e.g., an AP with BSSID bc:3a:5a:b5:8f:12, hereinafter referred to as the third AP) as the next state. However, since the learning option gives priority to the first AP, the electronic device (500) may define a state in which it is connected to the first AP, not the third AP, as the next state based on the learning option. Even though the third AP has a stronger connection strength, the electronic device (500) may define a state in which it is connected to the first AP as the next state (1190), so that the roaming model (525) may be trained to trigger a roaming scan to transition from the current state (1180) to the next state (1190).

[0176] According to one embodiment, if the learning option is not set, operation 1045 may be omitted. For example, if the learning option is not set, the electronic device (500) may perform operation 1050 immediately after performing operation 1040.

[0177] In operation 1050, the electronic device (500) may calculate a reward. The electronic device (500) may calculate the reward based on whether the action (e.g., the action performed in operation 1035) is appropriate. Below, cases where the action triggers a roaming scan and cases where the action does not trigger a roaming scan will be described.

[0178] In one embodiment, the action may be to trigger a roaming scan in a current state (1160) (e.g., connected to an AP (1150)). The electronic device (500) may switch the connection to an AP (e.g., an AP with a BSSID of b8:3a:5a:b5:8f:12) through a roaming scan in the current state (1160). The electronic device (500) may define the next state (1170) as a state connected to an AP (e.g., an AP with a BSSID of b8:3a:5a:b5:8f:12). The electronic device (500) may determine the action as appropriate if the connection strength of the AP (e.g., an AP with a BSSID of b8:3a:5a:b5:8f:12) is greater than the connection strength of the AP (1150). If the electronic device (500) determines the action as appropriate, it may generate a positive reward. The electronic device (500) may determine that the action is not appropriate if the connection strength of the AP (e.g., an AP with BSSID b8:3a:5a:b5:8f:12) is lower than the connection strength of the AP (1150). If the electronic device (500) determines that the action is not appropriate, it may generate a negative reward.

[0179] In one embodiment, the action may not trigger a roaming scan in the current state (1160) (e.g., connected to the AP (1150)). The electronic device (500) may determine the current state (1160) as the next state. The electronic device (500) may determine the action as inappropriate if the connection strength of the AP (1150) and another AP among the learning target APs (1130) is greater than the connection strength of the AP (1150). If the electronic device (500) determines the action as inappropriate, it may generate a negative reward. If the connection strength of the AP (1150) and another AP among the learning target APs (1130) is less than the connection strength of the AP (1150), it may generate a positive reward. If the electronic device (500) determines the action as inappropriate, it may generate a positive reward.

[0180] In operation 1055, the electronic device (500) may obtain (e.g., acquire) learning data (e.g., transition set (570) of FIG. 5B). The learning data may be a set comprising a current state (1160) of the electronic device (500), an action related to triggering a roaming scan (e.g., triggering a roaming scan or not triggering a roaming scan), a next state (1170) of the electronic device (500), and a reward (e.g., determined based on whether the action performed in the current state (1160) is appropriate). For example, the learning data may be stored as a set of information indicating that the next state (1170) obtained by performing an action (e.g., triggering a roaming scan) in the current state (1160) is appropriate and a positive reward is granted.

[0181]

[0182] FIG. 12 is a diagram schematically illustrating a method for generating learning data according to one embodiment.

[0183] Referring to FIG. 12, according to one embodiment, an electronic device (e.g., electronic device (500) of FIG. 5A) may acquire a full state (1210) (e.g., full state (1140) of FIG. 11F). The full state (1210) may include a scan count of a roaming scan and channel information of learning target APs (e.g., learning target APs (1130) of FIG. 11D) corresponding to the scan count. A method for acquiring the full state (1210) has been described in detail in operation 1025 of FIG. 11A, and thus, a redundant description thereof will be omitted.

[0184] According to one embodiment, the electronic device (500) may define a state of being connected to a randomly selected AP among the learning target APs (1130) as a current state (1250) (e.g., the current state (1160) of FIG. 11f). If there are N learning target APs (e.g., the learning target APs (1130) of FIG. 11d), the electronic device (500) may define a current state (1250) for the 1st to Nth APs. For example, the electronic device (500) may define a state of being connected to the i-th AP as a current state (1220). A detailed description of a specific method of defining a current state has been described in detail in operation 1030 of FIG. 11a, and thus, a redundant description thereof will be omitted.

[0185] According to one embodiment, the electronic device (500) can input the current state (1250) into the roaming model (1260) (e.g., the roaming model (525) of FIG. 5A) to determine an action. For example, the electronic device (500) can input the ith current state (1220) into the roaming model (1230) to determine an action. The method for determining the action has been described in detail in operation 1035 of FIG. 11A, and thus, a duplicate description thereof will be omitted.

[0186] According to one embodiment, the electronic device (500) can obtain training data (1270) based on the output of the roaming model (1260). The roaming model (1260) can determine the next state based on the performance of an action in the current state. The roaming model (1260) can compare the current state with the next state to determine whether the action is appropriate. The roaming model (1260) can generate a positive reward if the action is appropriate, and a negative reward if the action is not appropriate. The roaming model (1260) can obtain training data for all current states (1250) by performing both actions for the 1st to Nth APs.

[0187]

[0188] FIG. 13 is a diagram for explaining by comparison the cases in which learning of a neural network according to one embodiment is ideally completed and abnormally completed.

[0189] Referring to FIG. 13, according to one embodiment, in an ideal case (1310), when the Wi-Fi score (e.g., the connection strength (e.g., RSSI and / or throughput) of the first AP) of the current state (e.g., the state connected to the first AP among the learning target APs) decreases, a change occurs in the action output by the roaming model (e.g., the roaming model (525) of FIG. 5A). For example, when the connection strength of the first AP is at its maximum, the roaming model (525) may output an action (e.g., Stay) that does not trigger a roaming scan. At this time, when the connection strength of the first AP gradually decreases (e.g., gradually decreases from the Max score to the Min score), the roaming model (525) may change the action to trigger a roaming scan at a specific value. In this way, when a change in the action occurs as the connection strength of the first AP changes, the roaming model (525) may be ideally trained. Below, we will explain the abnormal cases (1320, 1330).

[0190] According to one embodiment, in the abnormal case (1320, 1330), even if the Wi-Fi score (e.g., the connection strength (e.g., RSSI and / or throughput) of the second AP) of the current state (e.g., the state of being connected to the second AP among the learning target APs) changes, the action output by the roaming model (e.g., the roaming model (525) of FIG. 5A) may not change. For example, in the abnormal case (1320), even if the connection strength of the second AP gradually decreases (e.g., gradually decreases from the Max score to the Min score), the roaming model (525) may always output an action so that a roaming scan is triggered. The abnormal case (1320) may be a case where the second AP is always in the outskirts when collecting learning data. This may be because, if the current state is always set to an AP in the outskirts during the learning process, the AP in the outskirts always has a low Wi-Fi score in all learning data, and thus, a negative reward is given in all cases. For example, in an abnormal case (1330), even if the connection strength of the second AP gradually decreases (e.g., gradually decreases from the Max score to the Min score), the roaming model (525) may always output an action so that a roaming scan is not triggered. The abnormal case (1330) may occur because the second AP always shows the best performance in all training. In this way, if the action does not change even when the connection strength of the second AP changes, the roaming model (525) may be trained abnormally.

[0191]

[0192] FIG. 14A and FIG. 14B are diagrams illustrating a method for a trained neural network to determine a threshold value for triggering a roaming scan of APs, according to one embodiment.

[0193] Referring to FIG. 14A, according to one embodiment, an electronic device (e.g., the electronic device (500) of FIG. 5A) can determine a roaming threshold (e.g., a threshold for triggering a roaming scan) of a normal learning AP (e.g., a normally learned AP, such as the ideal case (1310) of FIG. 13). The electronic device (500) can sequentially input various Wi-Fi score ranges of the normal learning AP (e.g., from the maximum connection strength to the minimum connection strength of the normal learning AP discovered in the scan result (e.g., the scan result (1110) of FIG. 11B)) into a roaming model (e.g., the roaming model (525) of FIG. 5A) for which learning has been completed, and track changes in the output of the roaming model (525). In situations where the connection strength (e.g., RSSI and / or throughput) is high, the action may not trigger a roaming scan (e.g., Stay), and as it decreases, it may switch to triggering a roaming scan. The electronic device (500) may determine the point at which a change in the output of the roaming model (525) (e.g., an action change) occurs as a roaming threshold. For example, the electronic device (500) may input the RSSI of a normal learning AP from -63 dbm to -69 dbm into the roaming model (525). The roaming model (525) may not trigger a roaming scan at -63 dbm and -64 dbm, and may trigger a roaming scan at -68 dbm and -69 dbm. That is, the roaming model (525) may determine that a normal learning AP from -68 dbm onwards requires roaming.

[0194] According to one embodiment, the electronic device (500) can calculate a roaming threshold for all normal learning APs using the above method. The electronic device (500) can calculate an average of the roaming thresholds of all normal learning APs.

[0195] Hereinafter, with reference to FIG. 14b, a method for determining a roaming threshold value of an abnormal learning AP (e.g., an abnormally learned AP, such as the abnormal case (1320, 1330) of FIG. 13) by an electronic device (500) will be described.

[0196] Referring to FIG. 14b, operations 1405 to 1440 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (1405 to 1440) may be changed, and at least two operations may be performed in parallel.

[0197] In operation 1405, the electronic device (500) may train a roaming model (525). The trained roaming model (525) may determine an action (e.g., triggering a roaming scan and / or not triggering a roaming scan) based on a specific Wi-Fi score of the trained AP (e.g., connection strength (e.g., RSSI and / or throughput) of the trained AP). The trained AP may include normal trained APs and abnormal trained APs (e.g., abnormally trained APs, such as in the abnormal cases (1320, 1330) of FIG. 13).

[0198] In operation 1410, the electronic device (500) may select a learned AP and input a Wi-Fi score range of the learned AP (e.g., from the maximum connection strength to the minimum connection strength of the learned AP detected in the scan result (1110)). For example, the electronic device (500) may define a state of being connected to the learned AP as a current state and sequentially input the current state and the RSSI of the learned AP into the roaming model (525).

[0199] In operation 1415, the electronic device (500) can determine whether a transition of action has occurred. For example, in the case of a normal learning AP, as described in the ideal case (1310) of FIG. 13, a change in the output (e.g., action) of the roaming model (525) may occur as the connection strength of the normal learning AP changes. In the case of an abnormal learning AP, as described in the abnormal cases (1320, 1330) of FIG. 13, a change in the output of the roaming model (525) may not occur as the connection strength of the abnormal learning AP changes. If a transition of action has occurred, the electronic device (500) can perform operation 1420. If a transition of action has occurred, the electronic device (500) can perform operation 1430.

[0200] In operation 1420, the electronic device (500) may determine the learned AP (e.g., selected in operation 1410) as a normal learned AP.

[0201] In operation 1425, the electronic device (500) can calculate the roaming threshold of the normal learning AP. This has been described in detail with reference to FIG. 14a, and will not be described again herein.

[0202] In operation 1430, the electronic device (500) may determine a learned AP (e.g., selected in operation 1410) as an abnormal learned AP.

[0203] In operation 1435, the electronic device (500) may determine a roaming threshold value of an abnormal learning AP. The electronic device (500) may determine the roaming threshold value of an abnormal learning AP as an average of the roaming threshold values ​​of normal learning APs. For example, in operation 1405, the electronic device (500) may train a roaming model (525) for all learning target APs included in the same group. At this time, depending on various situations, abnormal learning APs may also be generated in addition to normal learning APs. The electronic device (500) may determine the roaming threshold values ​​of normal learning APs through operations 1420 and 1425. The electronic device (500) may determine the roaming threshold value of an abnormal learning AP as an average of the roaming threshold values ​​of normal learning APs included in the same group.

[0204] In operation 1440, the electronic device (500) may perform inference (e.g., determine whether to trigger a roaming scan) based on the average of the roaming threshold values ​​of normal learning APs in the case of an abnormal learning AP. That is, the electronic device (500) may perform inference through the roaming model (525) in the case of a normal learning AP, but may perform inference by comparing the connection strength of the abnormal learning AP with the average of the roaming threshold values ​​of normal learning APs in the case of an abnormal learning AP.

[0205]

[0206] FIG. 15 is a diagram illustrating a method for correcting false detections of a neural network that has completed learning, according to one embodiment.

[0207] Referring to FIG. 15, operations 1505 to 1550 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (1505 to 1550) may be changed, and at least two operations may be performed in parallel.

[0208] In operation 1505, an electronic device (e.g., the electronic device (500) of FIG. 5A) may switch a roaming model (e.g., the roaming model (525) of FIG. 5A) to a learned mode (e.g., a test mode). The electronic device (500) may calculate a roaming threshold for learned APs (e.g., including normal learned APs and abnormal learned APs) through the roaming model (525) for which learning has been completed. A method for calculating a roaming threshold for a learned AP has been described in detail with reference to FIGS. 14A and 14B, and thus a detailed description thereof will be omitted herein.

[0209] In operation 1515, the electronic device (500) may detect the occurrence of a false positive. For example, the false positive control module (e.g., the false positive control module (520) of FIG. 5A) may operate in a learned mode (e.g., a test mode) after the learning of the roaming model (525) is completed. The roaming model (525) may perform a roaming decision (e.g., determining whether to trigger a roaming scan at the currently connected AP) at each HO query cycle (e.g., every 3 seconds). At this time, when the roaming scan is triggered by the roaming model (525), the false positive control module (520) may determine whether the decision of the roaming model (525) is appropriate. If a roaming scan is triggered by the roaming model (525) and an AP with a higher Wi-Fi score (e.g., connection strength) than the currently connected AP is found, this is normal operation and the decision of the roaming model (525) may be judged as appropriate. However, if a roaming scan is triggered by the roaming model (525) but an AP with a higher Wi-Fi score (e.g., connection strength) than the currently connected AP is not found, this is abnormal operation and the decision of the roaming model (525) may be judged as inappropriate. If the decision of the roaming model (525) is judged as inappropriate, the false positive control module (520) may detect the occurrence of a false positive.

[0210] In operation 1520, the electronic device (500) can determine whether the currently connected AP is a learned AP (e.g., including a normal learning AP and an abnormal learning AP). If the currently connected AP is an unlearned AP (e.g., a non-learning target AP), the electronic device (500) can perform operation 1535. If the currently connected AP is a learned AP, the electronic device (500) can perform operation 1525.

[0211] In operation 1525, the electronic device (500) can determine whether the currently connected AP is an abnormal learning AP. If the electronic device (500) inputs the Wi-Fi score (e.g., the connection strength of the currently connected AP) of the currently connected AP into the roaming model (525) by changing it within a range and the output (e.g., the action) of the roaming model (525) does not change, the electronic device (500) can determine that the currently connected AP is an abnormal learning AP. Conversely, if the output of the roaming model (525) changes, the electronic device (500) can determine that the currently connected AP is a normal learning AP. If the currently connected AP is an abnormal learning AP, the electronic device (500) can perform operation 1530. If the currently connected AP is a normal learning AP, the electronic device (500) can perform operations 1540 and 1545 in parallel.

[0212] In operation 1530, if a false positive occurs and the currently connected AP is an abnormal learning AP, the electronic device (500) may update the roaming threshold of the currently connected AP to the current Wi-Fi score. For example, the roaming threshold of the abnormal learning AP may be determined as the average of the roaming thresholds of normal learning APs. If a false positive occurs as in operation 1515, the electronic device (500) may set the roaming threshold of the currently connected AP to the current RSSI.

[0213] According to one embodiment, updating the roaming threshold of the currently connected AP (e.g., the abnormal learning AP) with the current Wi-Fi score may be because retraining the roaming model (525) is required to determine the roaming threshold of the currently connected AP through the roaming model (525). After updating the roaming threshold of the currently connected AP with the current Wi-Fi score, the electronic device (500) may perform operation 1550 to determine the roaming threshold of the currently connected AP through the roaming model (525). For example, the electronic device (500) may decide to retrain the roaming model (525) to determine the roaming threshold of the currently connected AP through the roaming model (525). The electronic device (500) may perform operation 1550 to retrain the roaming model (525).

[0214] In operation 1535, if a false positive occurs and the currently connected AP is a non-learning target AP, the electronic device (500) may update the roaming threshold of the currently connected AP to the current Wi-Fi score. For example, the roaming threshold of the non-learning target AP may be determined as a default value (e.g., -75 dbm). If a false positive occurs as in operation 1515, the electronic device (500) may set the roaming threshold of the currently connected AP to the current RSSI.

[0215] According to one embodiment, updating the roaming threshold of the currently connected AP (e.g., a non-learning target AP) with the current Wi-Fi score may be because retraining the roaming model (525) is required to determine the roaming threshold of the currently connected AP through the roaming model (525). After updating the roaming threshold of the currently connected AP with the current Wi-Fi score, the electronic device (500) may perform operation 1550 to determine the roaming threshold of the currently connected AP through the roaming model (525). For example, even if the currently connected AP is an existing non-learning target AP, the currently connected AP may be converted to a learning target AP once it is connected to the electronic device (500). The electronic device (500) may decide to retrain the roaming model (525) to determine the roaming threshold of the currently connected AP through the roaming model (525). The electronic device (500) can perform operation 1550 to relearn the roaming model (525).

[0216] In operation 1540, the electronic device (500) may calculate the count of false positives while connected to a normal learning AP. If the count of false positives is below a certain level (e.g., preset or set by the electronic device (500)) (e.g., θ), the electronic device (500) may perform operation 1545. If the count of false positives is above the certain level, the electronic device (500) may perform operation 1550.

[0217] In operation 1545, the electronic device (500) may ignore the HO query if false positives occur below a certain level (e.g., θ) while connected to a normal learning AP. For example, the electronic device (500) may determine whether the Wi-Fi score (e.g., estimated throughput and / or RSSI) of the connected AP fluctuates above a certain level (e.g., preset or set by the electronic device (500)). The electronic device (500) may stop making inference requests for the HO query (e.g., requests for determining whether a roaming scan is triggered) until the Wi-Fi score of the connected AP fluctuates above the certain level.

[0218] In operation 1550, the electronic device (500) may request an update of the scan result (e.g., the scan result (1110) of FIG. 11B) and retraining of the roaming model (525). The electronic device (500) may add the scan result obtained during the false detection process to the scan result (e.g., the scan result (1110) of FIG. 11B). The electronic device (500) may request retraining of the roaming model (525) when a certain count or more of false detections accumulates. Based on the retraining request, retraining of the roaming model (525) may be performed. When retraining of the roaming model (525) is completed, the electronic device (500) may perform operation 1505 again using the retrained roaming model (525).

[0219]

[0220] Figure 16 is an example of a flowchart of a roaming method according to one embodiment.

[0221] Referring to FIG. 16, operations 1610 to 1650 may be performed sequentially, but are not necessarily performed sequentially. For example, the order of each operation (1610 to 1650) may be changed, and at least two operations may be performed in parallel.

[0222] In operation 1610, an electronic device (e.g., electronic device (500) of FIG. 5A) may create a group of APs (e.g., AP (401) of FIG. 3A) discovered through a roaming scan. A method for creating a group of APs has been described in detail with reference to FIGS. 9A and 9B, and thus, a redundant description thereof will be omitted.

[0223] In operation 1630, the electronic device (500) may determine a different threshold for triggering a roaming scan of the APs included in the group based on channel information of the APs included in the group. The electronic device (500) may determine the threshold (e.g., the threshold for triggering a roaming scan) of the APs included in the group through a neural network (e.g., the roaming model (525) of FIG. 5A and / or the Main Q-network (585) of FIG. 5B).

[0224] In operation 1650, the electronic device (500) may determine whether to trigger a roaming scan while connected to a first AP among the APs included in the group. The electronic device (500) may trigger a roaming scan if the connection strength between the electronic device (500) and the first AP is less than a threshold value for triggering a roaming scan of the first AP.

[0225]

[0226] FIG. 17 is a block diagram of an electronic device (1701) within a network environment (1700) according to various embodiments. Referring to FIG. 17, in the network environment (1700), an electronic device (1701) (e.g., an STA (310) of FIG. 3A and an electronic device (500) of FIG. 4) may communicate with an electronic device (1702) (e.g., an STA (310) of FIG. 3A and an electronic device (500) of FIG. 4)) via a first network (1798) (e.g., a short-range wireless communication network), or may communicate with at least one of an electronic device (1704) (e.g., an STA (310) of FIG. 3A and an electronic device (500) of FIG. 4)) or a server (1708) via a second network (1799) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (1701) can communicate with the electronic device (1704) via the server (1708). According to one embodiment, the electronic device (1701) can include a processor (1720), a memory (1730), an input module (1750), an audio output module (1755), a display module (1760), an audio module (1770), a sensor module (1776), an interface (1777), a connection terminal (1778), a haptic module (1779), a camera module (1780), a power management module (1788), a battery (1789), a communication module (1790), a subscriber identification module (1796), or an antenna module (1797). In some embodiments, the electronic device (1701) can have at least one of these components (e.g., the connection terminal (1778)) omitted, or one or more other components added. In some embodiments, some of these components (e.g., sensor module (1776), camera module (1780), or antenna module (1797)) may be integrated into a single component (e.g., display module (1760)).

[0227] The processor (1720) may, for example, execute software (e.g., a program (1740)) to control at least one other component (e.g., a hardware or software component) of the electronic device (1701) connected to the processor (1720) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (1720) may store commands or data received from other components (e.g., a sensor module (1776) or a communication module (1790)) in a volatile memory (1732), process the commands or data stored in the volatile memory (1732), and store result data in a non-volatile memory (1734). According to one embodiment, the processor (1720) may include a main processor (1721) (e.g., a central processing unit or an application processor) or an auxiliary processor (1723) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (1721). For example, when the electronic device (1701) includes the main processor (1721) and the auxiliary processor (1723), the auxiliary processor (1723) may be configured to use less power than the main processor (1721) or to be specialized for a given function. The auxiliary processor (1723) may be implemented separately from the main processor (1721) or as a part thereof.

[0228] The auxiliary processor (1723) may control at least a portion of functions or states associated with at least one component (e.g., a display module (1760), a sensor module (1776), or a communication module (1790)) of the electronic device (1701), for example, on behalf of the main processor (1721) while the main processor (1721) is in an inactive (e.g., sleep) state, or together with the main processor (1721) while the main processor (1721) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (1723) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (1780) or a communication module (1790)). In one embodiment, the auxiliary processor (1723) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (1701) where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (1708)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.

[0229] The memory (1730) can store various data used by at least one component (e.g., the processor (1720) or the sensor module (1776)) of the electronic device (1701). The data can include, for example, software (e.g., the program (1740)) and input data or output data for commands related thereto. The memory (1730) can include volatile memory (1732) or non-volatile memory (1734).

[0230] The program (1740) may be stored as software in memory (1730) and may include, for example, an operating system (1742), middleware (1744), or an application (1746).

[0231] The input module (1750) can receive commands or data to be used in a component of the electronic device (1701) (e.g., a processor (1720)) from an external source (e.g., a user) of the electronic device (1701). The input module (1750) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0232] The audio output module (1755) can output audio signals to the outside of the electronic device (1701). The audio output module (1755) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.

[0233] The display module (1760) can visually provide information to an external party (e.g., a user) of the electronic device (1701). The display module (1760) may include, for example, a display, a holographic device, or a projector, and a control circuit for controlling the device. In one embodiment, the display module (1760) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.

[0234] The audio module (1770) can convert sound into an electrical signal, or vice versa. According to one embodiment, the audio module (1770) can acquire sound through the input module (1750), output sound through the sound output module (1755), or an external electronic device (e.g., electronic device (1702)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (1701).

[0235] The sensor module (1776) can detect the operating status (e.g., power or temperature) of the electronic device (1701) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (1776) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0236] The interface (1777) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (1701) with an external electronic device (e.g., the electronic device (1702)). In one embodiment, the interface (1777) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0237] The connection terminal (1778) may include a connector through which the electronic device (1701) may be physically connected to an external electronic device (e.g., the electronic device (1702)). In one embodiment, the connection terminal (1778) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0238] The haptic module (1779) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (1779) may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

[0239] The camera module (1780) can capture still images and videos. In one embodiment, the camera module (1780) may include one or more lenses, image sensors, image signal processors, or flashes.

[0240] The power management module (1788) can manage the power supplied to the electronic device (1701). According to one embodiment, the power management module (1788) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).

[0241] A battery (1789) may power at least one component of the electronic device (1701). In one embodiment, the battery (1789) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0242] The communication module (1790) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (1701) and an external electronic device (e.g., electronic device (1702), electronic device (1704), or server (1708)), and the performance of communication through the established communication channel. The communication module (1790) may operate independently from the processor (1720) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (1790) may include a wireless communication module (1792) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (1794) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (1704) via a first network (1798) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (1799) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a local area network or a wide area network)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (1792) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (1796) to identify or authenticate the electronic device (1701) within a communication network such as the first network (1798) or the second network (1799).

[0243] The wireless communication module (1792) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency communications (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (1792) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (1792) may support various technologies for securing performance in high-frequency bands, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (1792) may support various requirements specified in the electronic device (1701), an external electronic device (e.g., the electronic device (1704)), or a network system (e.g., the second network (1799)). According to one embodiment, the wireless communication module (1792) can support a peak data rate (e.g., 20 Gbps or more) for eMBB implementation, a loss coverage (e.g., 164 dB or less) for mMTC implementation, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC implementation.

[0244] The antenna module (1797) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (1797) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (1797) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (1798) or the second network (1799), may be selected from the plurality of antennas by, for example, the communication module (1790). A signal or power may be transmitted or received between the communication module (1790) and the external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (1797).

[0245] According to various embodiments, the antenna module (1797) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.

[0246] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).

[0247] According to one embodiment, commands or data may be transmitted or received between the electronic device (1701) and an external electronic device (1704) via a server (1708) connected to a second network (1799). Each of the external electronic devices (1702 or 1704) may be the same or a different type of device as the electronic device (1701). According to one embodiment, all or part of the operations executed in the electronic device (1701) may be executed in one or more of the external electronic devices (1702, 1704, or 1708). For example, when the electronic device (1701) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (1701) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (1701). The electronic device (1701) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (1701) may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (1704) may include an Internet of Things (IoT) device. The server (1708) may be an intelligent server utilizing machine learning and / or a neural network.According to one embodiment, an external electronic device (1704) or server (1708) may be included within the second network (1799). The electronic device (1701) may be applied to intelligent services (e.g., smart homes, smart cities, smart cars, or healthcare) based on 5G communication technology and IoT-related technology.

[0248]

[0249] According to one embodiment, an electronic device (e.g., STA (310) of FIG. 3A, electronic device (500) of FIG. 4, electronic device (1701) of FIG. 17) may include at least one processor (e.g., processor (450) of FIG. 4 and processor (1720) of FIG. 17) including a processing circuit. The electronic devices (301, 500, 1701) may include a memory (e.g., memory (460) of FIG. 4 and memory (1730) of FIG. 17) that stores instructions. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a group of access points (APs) (e.g., AP (401) of FIG. 3A) discovered through a roaming scan. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to train a neural network (e.g., the roaming model (525) of FIG. 5A and the Main Q-network (585) of FIG. 5B) to differently determine a threshold for triggering the roaming scan of the APs (401) included in the group based on channel information of the APs (401) included in the group.

[0250] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a first group of first APs discovered through a first roaming scan. The instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to add second APs discovered through a second roaming scan to the first group if one or more of the first APs are included in the second APs.

[0251] In one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a first group of first APs discovered through a first roaming scan. The instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a second group of second APs discovered through a second roaming scan. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a third group including the first APs, the second APs, and the third APs, when the third APs discovered through the third roaming scan include at least one of the first APs and at least one of the second APs.

[0252] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to generate learning data for reinforcement learning of the neural network (525, 585) based on channel information of the APs (401) included in the group. The learning data may be a set of a current state of the electronic device (301, 500, 1701), an action related to a trigger of the roaming scan, a next state of the electronic device (301, 500, 1701), and a reward related to the threshold value.

[0253] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine, as the current state, a state in which the electronic device (301, 500, 1701) is connected to a first AP among the APs (401) included in the group. The instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to compare a next state determined based on the type of the action from the current state with the current state to determine whether the action is appropriate. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the reward based on whether the action is appropriate.

[0254] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine, as the next state, a state in which the electronic device (301, 500, 1701) is connected to a second AP roamed according to the roaming scan, if the action triggers a roaming scan in the current state.

[0255] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the action as appropriate if the connection strength between the electronic device (301, 500, 1701) and the second AP is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine that the action is not appropriate if the connection strength between the electronic device (301, 500, 1701) and the second AP is lower than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0256] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the current state as the next state if the action does not trigger a roaming scan in the current state.

[0257] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the action as inappropriate when the connection strength between the electronic device (301, 500, 1701) and a third AP different from the first AP among the APs included in the group is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the third AP is less than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0258] According to one embodiment, a method of operating an electronic device (e.g., STA (310) of FIG. 3A, electronic device (500) of FIG. 4, electronic device (1701) of FIG. 17) may include an operation of creating a group of access points (APs) (e.g., AP (401) of FIG. 3A) discovered through a roaming scan. The method may include an operation of training a neural network (e.g., roaming model (525) of FIG. 5A and Main Q-network (585) of FIG. 5B) that differently determines thresholds for triggering the roaming scan of APs (401) included in the group based on channel information of the APs (401) included in the group.

[0259] According to one embodiment, the operation of creating a group of APs (401) may include an operation of creating a first group of first APs discovered through a first roaming scan. The operation of creating a group of APs (401) may include an operation of adding second APs discovered through a second roaming scan to the first group if one or more of the first APs are included in the second APs.

[0260] According to one embodiment, the operation of creating a group of APs (401) may include an operation of creating a first group of first APs discovered through a first roaming scan. The operation of creating a group of APs (401) may include an operation of creating a second group of second APs discovered through a second roaming scan. The operation of creating a group of APs (401) may include an operation of creating a third group including the first APs, the second APs, and the third APs, when the third APs discovered through a third roaming scan include at least one of the first APs and at least one of the second APs.

[0261] According to one embodiment, the operation of training the neural network (525, 585) may include an operation of generating learning data for reinforcement learning the neural network (525, 585) based on channel information of APs included in the group. The learning data may be a set of a current state of the electronic device (301, 500, 1701), an action related to a trigger of the roaming scan, a next state of the electronic device (301, 500, 1701), and a reward.

[0262] According to one embodiment, the operation of generating the learning data may include an operation of determining a state of connection with a first AP among the APs (401) included in the group as the current state. The operation of generating the learning data may include an operation of comparing a next state, determined based on the type of the action, with the current state to determine whether the action is appropriate. The operation of generating the learning data may include an operation of determining the reward based on whether the action is appropriate.

[0263] According to one embodiment, the operation of determining whether the action is appropriate may include, if the action triggers a roaming scan in the current state, determining a state connected to a second AP roamed according to the roaming scan as the next state.

[0264] According to one embodiment, the operation of determining whether the action is appropriate may further include an operation of determining the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the second AP is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The operation of determining whether the action is appropriate may further include an operation of determining the action as unappropriate when the connection strength between the electronic device (301, 500, 1701) and the second AP is less than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0265] In one embodiment, the operation of determining whether the action is appropriate may include determining the current state as the next state if the action does not trigger a roaming scan in the current state.

[0266] According to one embodiment, the operation of determining whether the action is appropriate may include an operation of determining the action as inappropriate when the connection strength between the electronic device (301, 500, 1701) and a third AP different from the first AP among the APs included in the group is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The operation of determining whether the action is appropriate may include an operation of determining the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the third AP is less than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0267] An electronic device according to one embodiment (e.g., STA (310) of FIG. 3A, electronic device (500) of FIG. 4, electronic device (1701) of FIG. 17) may include at least one processor including a processing circuit (e.g., processor (450) of FIG. 4 and processor (1720) of FIG. 17). The electronic device (301, 500, 1701) may include a memory (e.g., memory (460) of FIG. 4 and memory (1730) of FIG. 17) that stores instructions. The instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to create a group of access points (APs) (e.g., APs (401) of FIG. 3A) discovered through a roaming scan. The instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to differently determine a threshold for triggering the roaming scan of the APs (401) included in the group based on channel information of the APs (401) included in the group. The above instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine whether to trigger a roaming scan while connected to a first AP among the APs (401) included in the group.

[0268] According to one embodiment, the instructions may be individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to determine the threshold value of the APs (401) included in the group through a neural network (e.g., the roaming model (525) of FIG. 5A and the Main Q-network (585) of FIG. 5B) based on channel information of the APs (401) included in the group. The neural network (525, 585) may be learned through an operating method of the electronic device (301, 500, 1701). The operating method may include an operation of creating a group of access points (APs) (401) discovered through a roaming scan. The above operation method may include an operation of training a neural network (525, 585) to differently determine a threshold value for triggering the roaming scan of the APs (401) included in the group based on channel information of the APs (401) included in the group.

[0269] According to one embodiment, the operation of creating a group of APs (401) may include an operation of creating a first group of first APs discovered through a first roaming scan. The operation of creating a group of APs (401) may include an operation of adding second APs discovered through a second roaming scan to the first group if one or more of the first APs are included in the second APs.

[0270] According to one embodiment, the operation of creating a group of APs (401) may include an operation of creating a first group of first APs discovered through a first roaming scan. The operation of creating a group of APs (401) may include an operation of creating a second group of second APs discovered through a second roaming scan. The operation of creating a group of APs (401) may include an operation of creating a third group including the first APs, the second APs, and the third APs, when the third APs discovered through a third roaming scan include at least one of the first APs and at least one of the second APs.

[0271] According to one embodiment, the operation of training the neural network (525, 585) may include an operation of generating learning data for reinforcement learning the neural network (525, 585) based on channel information of APs included in the group. The learning data may be a set of a current state of the electronic device (301, 500, 1701), an action related to a trigger of the roaming scan, a next state of the electronic device (301, 500, 1701), and a reward.

[0272] According to one embodiment, the operation of generating the learning data may include an operation of determining a state of connection with a first AP among the APs (401) included in the group as the current state. The operation of generating the learning data may include an operation of comparing a next state, determined based on the type of the action, with the current state to determine whether the action is appropriate. The operation of generating the learning data may include an operation of determining the reward based on whether the action is appropriate.

[0273] According to one embodiment, the operation of determining whether the action is appropriate may include, if the action triggers a roaming scan in the current state, determining a state connected to a second AP roamed according to the roaming scan as the next state.

[0274] According to one embodiment, the operation of determining whether the action is appropriate may further include an operation of determining the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the second AP is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The operation of determining whether the action is appropriate may further include an operation of determining the action as unappropriate when the connection strength between the electronic device (301, 500, 1701) and the second AP is less than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0275] In one embodiment, the operation of determining whether the action is appropriate may include determining the current state as the next state if the action does not trigger a roaming scan in the current state.

[0276] According to one embodiment, the operation of determining whether the action is appropriate may include an operation of determining the action as inappropriate when the connection strength between the electronic device (301, 500, 1701) and a third AP different from the first AP among the APs included in the group is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP. The operation of determining whether the action is appropriate may include an operation of determining the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the third AP is less than the connection strength between the electronic device (301, 500, 1701) and the first AP.

[0277] According to one embodiment, a computer-readable recording medium storing one or more computer programs may include instructions for performing the above method of operation in a processor.

[0278]

[0279] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.

[0280] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.

[0281] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0282] Various embodiments of the present document may be implemented as software (e.g., a program (1740)) including one or more instructions stored in a storage medium (e.g., an internal memory (1736) or an external memory (1738)) readable by a machine (e.g., an electronic device (1701)). For example, a processor (e.g., a processor (1720)) of the machine (e.g., an electronic device (1701)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.

[0283] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a product between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.

[0284] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In electronic devices (301, 500, 1701), At least one processor (450, 1720) comprising a processing circuit; and Memory for storing instructions (460, 1730) Including, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: Create a group of access points (AP) (401) discovered through roaming scan, An electronic device (301, 500, 1701) that trains a neural network (525, 585) to differently determine a threshold for triggering the roaming scan of the APs (401) included in the group based on channel information of the APs (401) included in the group.

2. In paragraph 1, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: Create a first group of first APs discovered through the first roaming scan, An electronic device (301, 500, 1701) that adds the second APs to the first group when one or more of the first APs are included in the second APs discovered through the second roaming scan.

3. In either of paragraphs 1 and 2, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: Create a first group of first APs discovered through the first roaming scan, Create a second group of second APs discovered through the second roaming scan, An electronic device (301, 500, 1701) that creates a third group including the first APs, the second APs, and the third APs when the third APs discovered through the third roaming scan include at least one of the first APs and at least one of the second APs.

4. In any one of paragraphs 1 to 3, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: Based on the channel information of the APs (401) included in the above group, learning data for reinforcement learning of the neural network (525, 585) is generated, The above learning data is, An electronic device (301, 500, 1701) that sets a current state of the electronic device (301, 500, 1701), an action regarding a trigger of the roaming scan, a next state of the electronic device (301, 500, 1701), and a reward regarding the threshold value.

5. In any one of paragraphs 1 to 4, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: The electronic device (301, 500, 1701) determines the current state as being connected to the first AP among the APs (401) included in the group, By comparing the next state determined based on the type of the action from the current state with the current state, it is determined whether the action is appropriate, An electronic device (301, 500, 1701) that determines the reward based on whether the above action is appropriate.

6. In any one of paragraphs 1 to 5, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: An electronic device (301, 500, 1701) that determines a state in which the electronic device (301, 500, 1701) is connected to a second AP roamed according to the roaming scan as the next state when the above action triggers a roaming scan in the current state.

7. In any one of paragraphs 1 to 6, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: If the connection strength between the electronic device (301, 500, 1701) and the second AP is greater than the connection strength between the electronic device (301, 500, 1701) and the first AP, the action is determined to be appropriate. An electronic device (301, 500, 1701) that determines the action as inappropriate when the connection strength between the electronic device (301, 500, 1701) and the second AP is lower than the connection strength between the electronic device (301, 500, 1701) and the first AP.

8. In any one of paragraphs 1 to 7, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: An electronic device (301, 500, 1701) that determines the current state as the next state if the above action does not trigger a roaming scan in the current state.

9. In any one of paragraphs 1 to 8, The above instructions are individually or collectively executed by the at least one processor (450, 1720) to cause the electronic device (301, 500, 1701) to: If the connection strength of the electronic device (301, 500, 1701) and the third AP other than the first AP among the APs included in the group is greater than the connection strength of the electronic device (301, 500, 1701) and the first AP, the action is determined to be inappropriate. An electronic device (301, 500, 1701) that determines the action as appropriate when the connection strength between the electronic device (301, 500, 1701) and the third AP is lower than the connection strength between the electronic device (301, 500, 1701) and the first AP.

10. In the operating method of an electronic device (301, 500, 1701), An operation of creating a group of access points (APs) (401) discovered through a roaming scan; and An operation of training a neural network (525, 585) to differently determine a threshold for triggering the roaming scan of the APs (401) included in the group based on the channel information of the APs (401) included in the group. A method of operation, comprising:

11. In paragraph 10, The operation of creating a group of the above APs (401) is as follows: An operation of creating a first group of first APs discovered through a first roaming scan; and An operation of adding the second APs to the first group when one or more of the first APs are included in the second APs discovered through the second roaming scan. A method of operation, comprising:

12. In any one of paragraphs 10 and 11, The operation of creating a group of the above APs (401) is as follows: An action of creating a first group of first APs discovered through a first roaming scan; An operation of creating a second group of second APs discovered through a second roaming scan; and An operation of creating a third group including the first APs, the second APs, and the third APs, when the third APs discovered through the third roaming scan include at least one of the first APs and at least one of the second APs. A method of operation, comprising:

13. In any one of paragraphs 10 to 12, The operation of training the above neural network (525, 585) is as follows: An operation of generating learning data for reinforcement learning of the neural network (525, 585) based on channel information of APs included in the group; and Including, The above learning data is, An operating method comprising a set of a current state of the electronic device (301, 500, 1701), an action regarding a trigger of the roaming scan, a next state of the electronic device (301, 500, 1701), and a reward.

14. In any one of paragraphs 10 to 13, The action of generating the above learning data is: An operation of determining the state of connection with the first AP among the APs (401) included in the above group as the current state; An operation of comparing the next state determined based on the type of the action from the current state with the current state to determine whether the action is appropriate; and An action that determines the reward based on whether the above action is appropriate. A method of operation, comprising:

15. In any one of paragraphs 10 to 14, The action that determines whether the above action is appropriate is: If the above action triggers a roaming scan in the current state, an action of determining a state connected to a second AP roamed according to the roaming scan as the next state. A method of operation, comprising:

Citation Information

Patent Citations

  • Video jitter detection method and device, electronic equipment and storage medium

    KR1020220126264A

  • Light emitting device manufacturing method and light emitting device manufactured therefrom

    KR1020250029356A

  • Method and apparatus for detecting trends in received signal strength

    US20080032628A1

  • Managing communication in a wireless communications network

    US20200413316A1

  • Triggering client roaming in a high co-channel interference environment

    US20210127309A1